3v4l.org

run code in 300+ PHP versions simultaneously
<?php $date = '2015-01-01T00:00:00.000Z'; echo "================================================================\n Trying to set a DateTimeZone using a date with a timezone\n DATE: {$date}\n\n"; echo "DateTimeZone will be ignored because date has a timezone 'Z'\n"; $dateTime = new DateTime($date, new DateTimeZone('America/Mexico_City')); echo $dateTime->format('c'). "\n\n"; echo "DateTimeZone will be ignored, date timezone is in UTC anyway!\n"; $dateTime = new DateTime($date, new DateTimeZone('UTC')); echo $dateTime->format('c'). "\n\n"; $date = '2015-01-01T00:00:00.000'; echo "================================================================\n Trying to set a DateTimeZone using a date with NO timezone\n DATE: {$date}\n\n"; echo "Timezone will be set to the given DateTimeZone America/Mexico_City\n"; $dateTime = new DateTime($date, new DateTimeZone('America/Mexico_City')); echo $dateTime->format('c'). "\n\n"; echo "Timezone will be set to the given DateTimeZone UTC\n"; $dateTime = new DateTime($date, new DateTimeZone('UTC')); echo $dateTime->format('c'). "\n\n"; $date = '2015-01-01T00:00:00.000 America/Mexico_City'; echo "================================================================\n Trying to set a timezone directly in the date\n DATE: {$date}\n\n"; echo "Timezone will set to the given timezone set in the date string America/Mexico_City\n"; $dateTime = new DateTime($date); echo $dateTime->format('c'). "\n\n"; $date = '2015-01-01T00:00:00.000'; echo "================================================================\n DateTimeZone: setting it in construct vs setTimezone method\n DATE: {$date}\n\n"; echo "Set timezone using construct:\n"; $dateTime = new DateTime($date, new DateTimeZone('America/Mexico_City')); echo $dateTime->format('c'). "\n\n"; echo "Set timezone using method (notice the hour changes here in addition to the timezone):\n"; $dateTime = new DateTime($date); $dateTime->setTimezone(new DateTimeZone('America/Mexico_City')); echo $dateTime->format('c'). "\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/YStcm
function name:  (null)
number of ops:  117
compiled vars:  !0 = $date, !1 = $dateTime
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000Z'
    5     1        ROPE_INIT                                     3  ~4      '%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0ATrying+to+set+a+DateTimeZone+using+a+date+with+a+timezone%0A%0ADATE%3A+'
    7     2        ROPE_ADD                                      1  ~4      ~4, !0
          3        ROPE_END                                      2  ~3      ~4, '%0A%0A'
          4        ECHO                                                     ~3
    8     5        ECHO                                                     'DateTimeZone+will+be+ignored+because+date+has+a+timezone+%27Z%27%0A'
    9     6        NEW                                              $6      'DateTime'
          7        SEND_VAR_EX                                              !0
          8        NEW                                              $7      'DateTimeZone'
          9        SEND_VAL_EX                                              'America%2FMexico_City'
         10        DO_FCALL                                      0          
         11        SEND_VAR_NO_REF_EX                                       $7
         12        DO_FCALL                                      0          
         13        ASSIGN                                                   !1, $6
   10    14        INIT_METHOD_CALL                                         !1, 'format'
         15        SEND_VAL_EX                                              'c'
         16        DO_FCALL                                      0  $11     
         17        CONCAT                                           ~12     $11, '%0A%0A'
         18        ECHO                                                     ~12
   11    19        ECHO                                                     'DateTimeZone+will+be+ignored%2C+date+timezone+is+in+UTC+anyway%21%0A'
   12    20        NEW                                              $13     'DateTime'
         21        SEND_VAR_EX                                              !0
         22        NEW                                              $14     'DateTimeZone'
         23        SEND_VAL_EX                                              'UTC'
         24        DO_FCALL                                      0          
         25        SEND_VAR_NO_REF_EX                                       $14
         26        DO_FCALL                                      0          
         27        ASSIGN                                                   !1, $13
   13    28        INIT_METHOD_CALL                                         !1, 'format'
         29        SEND_VAL_EX                                              'c'
         30        DO_FCALL                                      0  $18     
         31        CONCAT                                           ~19     $18, '%0A%0A'
         32        ECHO                                                     ~19
   15    33        ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000'
   17    34        ROPE_INIT                                     3  ~22     '%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0ATrying+to+set+a+DateTimeZone+using+a+date+with+NO+timezone%0A%0ADATE%3A+'
   19    35        ROPE_ADD                                      1  ~22     ~22, !0
         36        ROPE_END                                      2  ~21     ~22, '%0A%0A'
         37        ECHO                                                     ~21
   20    38        ECHO                                                     'Timezone+will+be+set+to+the+given+DateTimeZone+America%2FMexico_City%0A'
   21    39        NEW                                              $24     'DateTime'
         40        SEND_VAR_EX                                              !0
         41        NEW                                              $25     'DateTimeZone'
         42        SEND_VAL_EX                                              'America%2FMexico_City'
         43        DO_FCALL                                      0          
         44        SEND_VAR_NO_REF_EX                                       $25
         45        DO_FCALL                                      0          
         46        ASSIGN                                                   !1, $24
   22    47        INIT_METHOD_CALL                                         !1, 'format'
         48        SEND_VAL_EX                                              'c'
         49        DO_FCALL                                      0  $29     
         50        CONCAT                                           ~30     $29, '%0A%0A'
         51        ECHO                                                     ~30
   23    52        ECHO                                                     'Timezone+will+be+set+to+the+given+DateTimeZone+UTC%0A'
   24    53        NEW                                              $31     'DateTime'
         54        SEND_VAR_EX                                              !0
         55        NEW                                              $32     'DateTimeZone'
         56        SEND_VAL_EX                                              'UTC'
         57        DO_FCALL                                      0          
         58        SEND_VAR_NO_REF_EX                                       $32
         59        DO_FCALL                                      0          
         60        ASSIGN                                                   !1, $31
   25    61        INIT_METHOD_CALL                                         !1, 'format'
         62        SEND_VAL_EX                                              'c'
         63        DO_FCALL                                      0  $36     
         64        CONCAT                                           ~37     $36, '%0A%0A'
         65        ECHO                                                     ~37
   28    66        ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000+America%2FMexico_City'
   30    67        ROPE_INIT                                     3  ~40     '%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0ATrying+to+set+a+timezone+directly+in+the+date%0A%0ADATE%3A+'
   32    68        ROPE_ADD                                      1  ~40     ~40, !0
         69        ROPE_END                                      2  ~39     ~40, '%0A%0A'
         70        ECHO                                                     ~39
   33    71        ECHO                                                     'Timezone+will+set+to+the+given+timezone+set+in+the+date+string+America%2FMexico_City%0A'
   34    72        NEW                                              $42     'DateTime'
         73        SEND_VAR_EX                                              !0
         74        DO_FCALL                                      0          
         75        ASSIGN                                                   !1, $42
   35    76        INIT_METHOD_CALL                                         !1, 'format'
         77        SEND_VAL_EX                                              'c'
         78        DO_FCALL                                      0  $45     
         79        CONCAT                                           ~46     $45, '%0A%0A'
         80        ECHO                                                     ~46
   38    81        ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000'
   40    82        ROPE_INIT                                     3  ~49     '%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0ADateTimeZone%3A+setting+it+in+construct+vs+setTimezone+method%0A%0ADATE%3A+'
   42    83        ROPE_ADD                                      1  ~49     ~49, !0
         84        ROPE_END                                      2  ~48     ~49, '%0A%0A'
         85        ECHO                                                     ~48
   43    86        ECHO                                                     'Set+timezone+using+construct%3A%0A'
   44    87        NEW                                              $51     'DateTime'
         88        SEND_VAR_EX                                              !0
         89        NEW                                              $52     'DateTimeZone'
         90        SEND_VAL_EX                                              'America%2FMexico_City'
         91        DO_FCALL                                      0          
         92        SEND_VAR_NO_REF_EX                                       $52
         93        DO_FCALL                                      0          
         94        ASSIGN                                                   !1, $51
   45    95        INIT_METHOD_CALL                                         !1, 'format'
         96        SEND_VAL_EX                                              'c'
         97        DO_FCALL                                      0  $56     
         98        CONCAT                                           ~57     $56, '%0A%0A'
         99        ECHO                                                     ~57
   46   100        ECHO                                                     'Set+timezone+using+method+%28notice+the+hour+changes+here+in+addition+to+the+timezone%29%3A%0A'
   47   101        NEW                                              $58     'DateTime'
        102        SEND_VAR_EX                                              !0
        103        DO_FCALL                                      0          
        104        ASSIGN                                                   !1, $58
   48   105        INIT_METHOD_CALL                                         !1, 'setTimezone'
        106        NEW                                              $61     'DateTimeZone'
        107        SEND_VAL_EX                                              'America%2FMexico_City'
        108        DO_FCALL                                      0          
        109        SEND_VAR_NO_REF_EX                                       $61
        110        DO_FCALL                                      0          
   49   111        INIT_METHOD_CALL                                         !1, 'format'
        112        SEND_VAL_EX                                              'c'
        113        DO_FCALL                                      0  $64     
        114        CONCAT                                           ~65     $64, '%0A'
        115        ECHO                                                     ~65
        116      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.96 ms | 1403 KiB | 13 Q