3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tz = 'Australia/Sydney'; $date_start = new \DateTime('2010-03-01', new \DateTimeZone($tz)); //(+11 UTC) $date_end = new \DateTime('2010-07-29', new \DateTimeZone($tz)); //(+10 UTC) $interval = $date_start->diff($date_end); $utc_start = $date_start->format('U'); $utc_end = $date_end->format('U'); $start = new \DateTime('@' . $utc_start); $start_5_month = new \DateTime($start->format('Y-m-d H:i:s') . ' +5 month', new DateTimeZone($tz)); //5 Month "UTC" without AEST change var_dump('Start: ' . ((new \DateTime('@' . $utc_start))->format('Y-m-d H:i:s')), 'End: with AEST change ' . ((new \DateTime('@' . $utc_end))->format('Y-m-d H:i:s')), $start_5_month, $interval); echo '5 month 2010-07-28 12:00:00.000000 timezone Australia/Sydney/+10 UTC correct';
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5KhLZ
function name:  (null)
number of ops:  70
compiled vars:  !0 = $tz, !1 = $date_start, !2 = $date_end, !3 = $interval, !4 = $utc_start, !5 = $utc_end, !6 = $start, !7 = $start_5_month
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'Australia%2FSydney'
    3     1        NEW                                              $9      'DateTime'
          2        SEND_VAL_EX                                              '2010-03-01'
          3        NEW                                              $10     'DateTimeZone'
          4        SEND_VAR_EX                                              !0
          5        DO_FCALL                                      0          
          6        SEND_VAR_NO_REF_EX                                       $10
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !1, $9
    4     9        NEW                                              $14     'DateTime'
         10        SEND_VAL_EX                                              '2010-07-29'
         11        NEW                                              $15     'DateTimeZone'
         12        SEND_VAR_EX                                              !0
         13        DO_FCALL                                      0          
         14        SEND_VAR_NO_REF_EX                                       $15
         15        DO_FCALL                                      0          
         16        ASSIGN                                                   !2, $14
    5    17        INIT_METHOD_CALL                                         !1, 'diff'
         18        SEND_VAR_EX                                              !2
         19        DO_FCALL                                      0  $19     
         20        ASSIGN                                                   !3, $19
    6    21        INIT_METHOD_CALL                                         !1, 'format'
         22        SEND_VAL_EX                                              'U'
         23        DO_FCALL                                      0  $21     
         24        ASSIGN                                                   !4, $21
    7    25        INIT_METHOD_CALL                                         !2, 'format'
         26        SEND_VAL_EX                                              'U'
         27        DO_FCALL                                      0  $23     
         28        ASSIGN                                                   !5, $23
    8    29        NEW                                              $25     'DateTime'
         30        CONCAT                                           ~26     '%40', !4
         31        SEND_VAL_EX                                              ~26
         32        DO_FCALL                                      0          
         33        ASSIGN                                                   !6, $25
    9    34        NEW                                              $29     'DateTime'
         35        INIT_METHOD_CALL                                         !6, 'format'
         36        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         37        DO_FCALL                                      0  $30     
         38        CONCAT                                           ~31     $30, '+%2B5+month'
         39        SEND_VAL_EX                                              ~31
         40        NEW                                              $32     'DateTimeZone'
         41        SEND_VAR_EX                                              !0
         42        DO_FCALL                                      0          
         43        SEND_VAR_NO_REF_EX                                       $32
         44        DO_FCALL                                      0          
         45        ASSIGN                                                   !7, $29
   10    46        INIT_FCALL                                               'var_dump'
         47        NEW                                              $36     'DateTime'
         48        CONCAT                                           ~37     '%40', !4
         49        SEND_VAL_EX                                              ~37
         50        DO_FCALL                                      0          
         51        INIT_METHOD_CALL                                         $36, 'format'
         52        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         53        DO_FCALL                                      0  $39     
         54        CONCAT                                           ~40     'Start%3A+', $39
         55        SEND_VAL                                                 ~40
         56        NEW                                              $41     'DateTime'
         57        CONCAT                                           ~42     '%40', !5
         58        SEND_VAL_EX                                              ~42
         59        DO_FCALL                                      0          
         60        INIT_METHOD_CALL                                         $41, 'format'
         61        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         62        DO_FCALL                                      0  $44     
         63        CONCAT                                           ~45     'End%3A+with+AEST+change+', $44
         64        SEND_VAL                                                 ~45
         65        SEND_VAR                                                 !7
         66        SEND_VAR                                                 !3
         67        DO_ICALL                                                 
   11    68        ECHO                                                     '5+month+2010-07-28+12%3A00%3A00.000000+timezone+Australia%2FSydney%2F%2B10+UTC+correct'
         69      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.41 ms | 1400 KiB | 15 Q