3v4l.org

run code in 500+ PHP versions simultaneously
<?php //2011-03-13T08:00:00+0000 1300003200 America/Chicago CDT $date = new \DateTime('2010-11-07 02:00:00 America/Chicago'); $timestamp = (int) $date->format('U'); //CST 0 OR $timestamp + (3600 * 24 * 126); for($i = 0; ; $i++) { $date = new \DateTime('@' . ($timestamp + (3600 * $i * 24))); $tz = new \DateTimeZone('America/Chicago'); $date->SetTimezone($tz); $is_dst = $date->format('I'); $arr = $tz->getTransitions($timestamp, $timestamp); if('CST' === $arr[0]['abbr'] || -21600 === $arr[0]['offset'] || !isset($is_dst) || !$is_dst) { //$is_dst work with default object. var_dump($arr, $is_dst); break; } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 57
Branch analysis from position: 57
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 11
Branch analysis from position: 58
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 47) Position 1 = 39, Position 2 = 43
Branch analysis from position: 39
2 jumps found. (Code = 47) Position 1 = 44, Position 2 = 47
Branch analysis from position: 44
2 jumps found. (Code = 47) Position 1 = 48, Position 2 = 50
Branch analysis from position: 48
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 56
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 58
Branch analysis from position: 58
Branch analysis from position: 56
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 11
Branch analysis from position: 58
Branch analysis from position: 11
Branch analysis from position: 50
Branch analysis from position: 47
Branch analysis from position: 43
filename:       /in/MifMq
function name:  (null)
number of ops:  59
compiled vars:  !0 = $date, !1 = $timestamp, !2 = $i, !3 = $tz, !4 = $is_dst, !5 = $arr
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   NEW                                                  $6      'DateTime'
          1        SEND_VAL_EX                                                  '2010-11-07+02%3A00%3A00+America%2FChicago'
          2        DO_FCALL                                          0          
          3        ASSIGN                                                       !0, $6
    4     4        INIT_METHOD_CALL                                             !0, 'format'
          5        SEND_VAL_EX                                                  'U'
          6        DO_FCALL                                          0  $9      
          7        CAST                                              4  ~10     $9
          8        ASSIGN                                                       !1, ~10
    7     9        ASSIGN                                                       !2, 0
         10      > JMP                                                          ->57
    8    11    >   NEW                                                  $13     'DateTime'
         12        MUL                                                  ~14     !2, 3600
         13        MUL                                                  ~15     ~14, 24
         14        ADD                                                  ~16     !1, ~15
         15        CONCAT                                               ~17     '%40', ~16
         16        SEND_VAL_EX                                                  ~17
         17        DO_FCALL                                          0          
         18        ASSIGN                                                       !0, $13
    9    19        NEW                                                  $20     'DateTimeZone'
         20        SEND_VAL_EX                                                  'America%2FChicago'
         21        DO_FCALL                                          0          
         22        ASSIGN                                                       !3, $20
   10    23        INIT_METHOD_CALL                                             !0, 'SetTimezone'
         24        SEND_VAR_EX                                                  !3
         25        DO_FCALL                                          0          
   11    26        INIT_METHOD_CALL                                             !0, 'format'
         27        SEND_VAL_EX                                                  'I'
         28        DO_FCALL                                          0  $24     
         29        ASSIGN                                                       !4, $24
   12    30        INIT_METHOD_CALL                                             !3, 'getTransitions'
         31        SEND_VAR_EX                                                  !1
         32        SEND_VAR_EX                                                  !1
         33        DO_FCALL                                          0  $26     
         34        ASSIGN                                                       !5, $26
   13    35        FETCH_DIM_R                                          ~28     !5, 0
         36        FETCH_DIM_R                                          ~29     ~28, 'abbr'
         37        IS_IDENTICAL                                         ~30     ~29, 'CST'
         38      > JMPNZ_EX                                             ~30     ~30, ->43
         39    >   FETCH_DIM_R                                          ~31     !5, 0
         40        FETCH_DIM_R                                          ~32     ~31, 'offset'
         41        IS_IDENTICAL                                         ~33     ~32, -21600
         42        BOOL                                                 ~30     ~33
         43    > > JMPNZ_EX                                             ~30     ~30, ->47
         44    >   ISSET_ISEMPTY_CV                                     ~34     !4
         45        BOOL_NOT                                             ~35     ~34
         46        BOOL                                                 ~30     ~35
         47    > > JMPNZ_EX                                             ~30     ~30, ->50
         48    >   BOOL_NOT                                             ~36     !4
         49        BOOL                                                 ~30     ~36
         50    > > JMPZ                                                         ~30, ->56
   15    51    >   INIT_FCALL                                                   'var_dump'
         52        SEND_VAR                                                     !5
         53        SEND_VAR                                                     !4
         54        DO_ICALL                                                     
   16    55      > JMP                                                          ->58
    7    56    >   PRE_INC                                                      !2
         57    > > JMPNZ                                                        <true>, ->11
   18    58    > > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
127.7 ms | 482 KiB | 8 Q