3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo "Using US/Pacific:\n"; date_default_timezone_set('US/Pacific'); $dateJan = new \DateTime('2018-01-30'); $dateMar = new \DateTime('2018-03-01'); echo "\ndateJan:" . $dateJan->format('r')."\n"; echo "\ndateMar:" . $dateMar->format('r')."\n"; echo "\nDiff Jan to Mar\n"; echo 'Diff Months: ' . (clone $dateMar)->diff((clone $dateJan))->m."\n"; echo 'Diff Days: ' . (clone $dateMar)->diff((clone $dateJan))->d."\n"; echo 'Diff Days abs: ' . (clone $dateMar)->diff((clone $dateJan))->days."\n"; echo 'Diff Hours: ' . (clone $dateMar)->diff((clone $dateJan))->h."\n"; echo "\nDiff Mar to Jan\n"; echo 'Diff Months: ' . (clone $dateJan)->diff((clone $dateMar))->m."\n"; echo 'Diff Days: ' . (clone $dateJan)->diff((clone $dateMar))->d."\n"; echo 'Diff Days abs: ' . (clone $dateJan)->diff((clone $dateMar))->days."\n"; echo 'Diff Hours: ' . (clone $dateJan)->diff((clone $dateMar))->h."\n"; echo "\nUsing Europe/Amsterdam:\n"; date_default_timezone_set('Europe/Amsterdam'); $dateJan = new \DateTime('2018-01-30'); $dateMar = new \DateTime('2018-03-01'); echo "\ndateJan:" . $dateJan->format('r')."\n"; echo "\ndateMar:" . $dateMar->format('r')."\n"; echo "\nDiff Jan to Mar\n"; echo 'Diff Months: ' . (clone $dateMar)->diff((clone $dateJan))->m."\n"; echo 'Diff Days: ' . (clone $dateMar)->diff((clone $dateJan))->d."\n"; echo 'Diff Days abs: ' . (clone $dateMar)->diff((clone $dateJan))->days."\n"; echo 'Diff Hours: ' . (clone $dateMar)->diff((clone $dateJan))->h."\n"; echo "\nDiff Mar to Jan\n"; echo 'Diff Months: ' . (clone $dateJan)->diff((clone $dateMar))->m."\n"; echo 'Diff Days: ' . (clone $dateJan)->diff((clone $dateMar))->d."\n"; echo 'Diff Days abs: ' . (clone $dateJan)->diff((clone $dateMar))->days."\n"; echo 'Diff Hours: ' . (clone $dateJan)->diff((clone $dateMar))->h."\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/49mag
function name:  (null)
number of ops:  197
compiled vars:  !0 = $dateJan, !1 = $dateMar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ECHO                                                     'Using+US%2FPacific%3A%0A'
    4     1        INIT_FCALL                                               'date_default_timezone_set'
          2        SEND_VAL                                                 'US%2FPacific'
          3        DO_ICALL                                                 
    5     4        NEW                                              $3      'DateTime'
          5        SEND_VAL_EX                                              '2018-01-30'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !0, $3
    6     8        NEW                                              $6      'DateTime'
          9        SEND_VAL_EX                                              '2018-03-01'
         10        DO_FCALL                                      0          
         11        ASSIGN                                                   !1, $6
    8    12        INIT_METHOD_CALL                                         !0, 'format'
         13        SEND_VAL_EX                                              'r'
         14        DO_FCALL                                      0  $9      
         15        CONCAT                                           ~10     '%0AdateJan%3A', $9
         16        CONCAT                                           ~11     ~10, '%0A'
         17        ECHO                                                     ~11
    9    18        INIT_METHOD_CALL                                         !1, 'format'
         19        SEND_VAL_EX                                              'r'
         20        DO_FCALL                                      0  $12     
         21        CONCAT                                           ~13     '%0AdateMar%3A', $12
         22        CONCAT                                           ~14     ~13, '%0A'
         23        ECHO                                                     ~14
   11    24        ECHO                                                     '%0ADiff+Jan+to+Mar%0A'
   12    25        CLONE                                            ~15     !1
         26        INIT_METHOD_CALL                                         ~15, 'diff'
         27        CLONE                                            ~16     !0
         28        SEND_VAL_EX                                              ~16
         29        DO_FCALL                                      0  $17     
         30        FETCH_OBJ_R                                      ~18     $17, 'm'
         31        CONCAT                                           ~19     'Diff+Months%3A+', ~18
         32        CONCAT                                           ~20     ~19, '%0A'
         33        ECHO                                                     ~20
   13    34        CLONE                                            ~21     !1
         35        INIT_METHOD_CALL                                         ~21, 'diff'
         36        CLONE                                            ~22     !0
         37        SEND_VAL_EX                                              ~22
         38        DO_FCALL                                      0  $23     
         39        FETCH_OBJ_R                                      ~24     $23, 'd'
         40        CONCAT                                           ~25     'Diff+Days%3A+', ~24
         41        CONCAT                                           ~26     ~25, '%0A'
         42        ECHO                                                     ~26
   14    43        CLONE                                            ~27     !1
         44        INIT_METHOD_CALL                                         ~27, 'diff'
         45        CLONE                                            ~28     !0
         46        SEND_VAL_EX                                              ~28
         47        DO_FCALL                                      0  $29     
         48        FETCH_OBJ_R                                      ~30     $29, 'days'
         49        CONCAT                                           ~31     'Diff+Days+abs%3A+', ~30
         50        CONCAT                                           ~32     ~31, '%0A'
         51        ECHO                                                     ~32
   15    52        CLONE                                            ~33     !1
         53        INIT_METHOD_CALL                                         ~33, 'diff'
         54        CLONE                                            ~34     !0
         55        SEND_VAL_EX                                              ~34
         56        DO_FCALL                                      0  $35     
         57        FETCH_OBJ_R                                      ~36     $35, 'h'
         58        CONCAT                                           ~37     'Diff+Hours%3A+', ~36
         59        CONCAT                                           ~38     ~37, '%0A'
         60        ECHO                                                     ~38
   17    61        ECHO                                                     '%0ADiff+Mar+to+Jan%0A'
   18    62        CLONE                                            ~39     !0
         63        INIT_METHOD_CALL                                         ~39, 'diff'
         64        CLONE                                            ~40     !1
         65        SEND_VAL_EX                                              ~40
         66        DO_FCALL                                      0  $41     
         67        FETCH_OBJ_R                                      ~42     $41, 'm'
         68        CONCAT                                           ~43     'Diff+Months%3A+', ~42
         69        CONCAT                                           ~44     ~43, '%0A'
         70        ECHO                                                     ~44
   19    71        CLONE                                            ~45     !0
         72        INIT_METHOD_CALL                                         ~45, 'diff'
         73        CLONE                                            ~46     !1
         74        SEND_VAL_EX                                              ~46
         75        DO_FCALL                                      0  $47     
         76        FETCH_OBJ_R                                      ~48     $47, 'd'
         77        CONCAT                                           ~49     'Diff+Days%3A+', ~48
         78        CONCAT                                           ~50     ~49, '%0A'
         79        ECHO                                                     ~50
   20    80        CLONE                                            ~51     !0
         81        INIT_METHOD_CALL                                         ~51, 'diff'
         82        CLONE                                            ~52     !1
         83        SEND_VAL_EX                                              ~52
         84        DO_FCALL                                      0  $53     
         85        FETCH_OBJ_R                                      ~54     $53, 'days'
         86        CONCAT                                           ~55     'Diff+Days+abs%3A+', ~54
         87        CONCAT                                           ~56     ~55, '%0A'
         88        ECHO                                                     ~56
   21    89        CLONE                                            ~57     !0
         90        INIT_METHOD_CALL                                         ~57, 'diff'
         91        CLONE                                            ~58     !1
         92        SEND_VAL_EX                                              ~58
         93        DO_FCALL                                      0  $59     
         94        FETCH_OBJ_R                                      ~60     $59, 'h'
         95        CONCAT                                           ~61     'Diff+Hours%3A+', ~60
         96        CONCAT                                           ~62     ~61, '%0A'
         97        ECHO                                                     ~62
   23    98        ECHO                                                     '%0AUsing+Europe%2FAmsterdam%3A%0A'
   24    99        INIT_FCALL                                               'date_default_timezone_set'
        100        SEND_VAL                                                 'Europe%2FAmsterdam'
        101        DO_ICALL                                                 
   25   102        NEW                                              $64     'DateTime'
        103        SEND_VAL_EX                                              '2018-01-30'
        104        DO_FCALL                                      0          
        105        ASSIGN                                                   !0, $64
   26   106        NEW                                              $67     'DateTime'
        107        SEND_VAL_EX                                              '2018-03-01'
        108        DO_FCALL                                      0          
        109        ASSIGN                                                   !1, $67
   28   110        INIT_METHOD_CALL                                         !0, 'format'
        111        SEND_VAL_EX                                              'r'
        112        DO_FCALL                                      0  $70     
        113        CONCAT                                           ~71     '%0AdateJan%3A', $70
        114        CONCAT                                           ~72     ~71, '%0A'
        115        ECHO                                                     ~72
   29   116        INIT_METHOD_CALL                                         !1, 'format'
        117        SEND_VAL_EX                                              'r'
        118        DO_FCALL                                      0  $73     
        119        CONCAT                                           ~74     '%0AdateMar%3A', $73
        120        CONCAT                                           ~75     ~74, '%0A'
        121        ECHO                                                     ~75
   31   122        ECHO                                                     '%0ADiff+Jan+to+Mar%0A'
   32   123        CLONE                                            ~76     !1
        124        INIT_METHOD_CALL                                         ~76, 'diff'
        125        CLONE                                            ~77     !0
        126        SEND_VAL_EX                                              ~77
        127        DO_FCALL                                      0  $78     
        128        FETCH_OBJ_R                                      ~79     $78, 'm'
        129        CONCAT                                           ~80     'Diff+Months%3A+', ~79
        130        CONCAT                                           ~81     ~80, '%0A'
        131        ECHO                                                     ~81
   33   132        CLONE                                            ~82     !1
        133        INIT_METHOD_CALL                                         ~82, 'diff'
        134        CLONE                                            ~83     !0
        135        SEND_VAL_EX                                              ~83
        136        DO_FCALL                                      0  $84     
        137        FETCH_OBJ_R                                      ~85     $84, 'd'
        138        CONCAT                                           ~86     'Diff+Days%3A+', ~85
        139        CONCAT                                           ~87     ~86, '%0A'
        140        ECHO                                                     ~87
   34   141        CLONE                                            ~88     !1
        142        INIT_METHOD_CALL                                         ~88, 'diff'
        143        CLONE                                            ~89     !0
        144        SEND_VAL_EX                                              ~89
        145        DO_FCALL                                      0  $90     
        146        FETCH_OBJ_R                                      ~91     $90, 'days'
        147        CONCAT                                           ~92     'Diff+Days+abs%3A+', ~91
        148        CONCAT                                           ~93     ~92, '%0A'
        149        ECHO                                                     ~93
   35   150        CLONE                                            ~94     !1
        151        INIT_METHOD_CALL                                         ~94, 'diff'
        152        CLONE                                            ~95     !0
        153        SEND_VAL_EX                                              ~95
        154        DO_FCALL                                      0  $96     
        155        FETCH_OBJ_R                                      ~97     $96, 'h'
        156        CONCAT                                           ~98     'Diff+Hours%3A+', ~97
        157        CONCAT                                           ~99     ~98, '%0A'
        158        ECHO                                                     ~99
   37   159        ECHO                                                     '%0ADiff+Mar+to+Jan%0A'
   38   160        CLONE                                            ~100    !0
        161        INIT_METHOD_CALL                                         ~100, 'diff'
        162        CLONE                                            ~101    !1
        163        SEND_VAL_EX                                              ~101
        164        DO_FCALL                                      0  $102    
        165        FETCH_OBJ_R                                      ~103    $102, 'm'
        166        CONCAT                                           ~104    'Diff+Months%3A+', ~103
        167        CONCAT                                           ~105    ~104, '%0A'
        168        ECHO                                                     ~105
   39   169        CLONE                                            ~106    !0
        170        INIT_METHOD_CALL                                         ~106, 'diff'
        171        CLONE                                            ~107    !1
        172        SEND_VAL_EX                                              ~107
        173        DO_FCALL                                      0  $108    
        174        FETCH_OBJ_R                                      ~109    $108, 'd'
        175        CONCAT                                           ~110    'Diff+Days%3A+', ~109
        176        CONCAT                                           ~111    ~110, '%0A'
        177        ECHO                                                     ~111
   40   178        CLONE                                            ~112    !0
        179        INIT_METHOD_CALL                                         ~112, 'diff'
        180        CLONE                                            ~113    !1
        181        SEND_VAL_EX                                              ~113
        182        DO_FCALL                                      0  $114    
        183        FETCH_OBJ_R                                      ~115    $114, 'days'
        184        CONCAT                                           ~116    'Diff+Days+abs%3A+', ~115
        185        CONCAT                                           ~117    ~116, '%0A'
        186        ECHO                                                     ~117
   41   187        CLONE                                            ~118    !0
        188        INIT_METHOD_CALL                                         ~118, 'diff'
        189        CLONE                                            ~119    !1
        190        SEND_VAL_EX                                              ~119
        191        DO_FCALL                                      0  $120    
        192        FETCH_OBJ_R                                      ~121    $120, 'h'
        193        CONCAT                                           ~122    'Diff+Hours%3A+', ~121
        194        CONCAT                                           ~123    ~122, '%0A'
        195        ECHO                                                     ~123
        196      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
168.24 ms | 1412 KiB | 15 Q