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"; 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"; 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"; echo "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"; 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:\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/OVCsI
function name:  (null)
number of ops:  121
compiled vars:  !0 = $date, !1 = $dateTime
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000Z'
    4     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+'
    6     2        ROPE_ADD                                      1  ~4      ~4, !0
          3        ROPE_END                                      2  ~3      ~4, '%0A'
          4        ECHO                                                     ~3
    7     5        ECHO                                                     'DateTimeZone+will+be+ignored+because+date+has+a+timezone+%27Z%27%0A'
    8     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
    9    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
   10    19        ECHO                                                     'DateTimeZone+will+be+ignored%2C+date+timezone+is+in+UTC+anyway%21%0A'
   11    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
   12    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
   14    33        ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000'
   16    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+'
   18    35        ROPE_ADD                                      1  ~22     ~22, !0
         36        ROPE_END                                      2  ~21     ~22, '%0A'
         37        ECHO                                                     ~21
   19    38        ECHO                                                     'Timezone+will+be+set+to+the+given+DateTimeZone+America%2FMexico_City%0A'
   20    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
   21    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
   22    52        ECHO                                                     'Timezone+will+be+set+to+the+given+DateTimeZone+UTC%0A'
   23    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
   24    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
   27    66        ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000+America%2FMexico_City'
   29    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+'
   31    68        ROPE_ADD                                      1  ~40     ~40, !0
         69        ROPE_END                                      2  ~39     ~40, '%0A'
         70        ECHO                                                     ~39
   32    71        ROPE_INIT                                     3  ~43     'DATE%3A+'
         72        ROPE_ADD                                      1  ~43     ~43, !0
         73        ROPE_END                                      2  ~42     ~43, '%0A%0A'
         74        ECHO                                                     ~42
   33    75        ECHO                                                     'Timezone+will+set+to+the+given+timezone+set+in+the+date+string+America%2FMexico_City%0A'
   34    76        NEW                                              $45     'DateTime'
         77        SEND_VAR_EX                                              !0
         78        DO_FCALL                                      0          
         79        ASSIGN                                                   !1, $45
   35    80        INIT_METHOD_CALL                                         !1, 'format'
         81        SEND_VAL_EX                                              'c'
         82        DO_FCALL                                      0  $48     
         83        CONCAT                                           ~49     $48, '%0A%0A'
         84        ECHO                                                     ~49
   38    85        ASSIGN                                                   !0, '2015-01-01T00%3A00%3A00.000'
   40    86        ROPE_INIT                                     3  ~52     '%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    87        ROPE_ADD                                      1  ~52     ~52, !0
         88        ROPE_END                                      2  ~51     ~52, '%0A'
         89        ECHO                                                     ~51
   43    90        ECHO                                                     'Set+timezone+using+construct%3A%0A'
   44    91        NEW                                              $54     'DateTime'
         92        SEND_VAR_EX                                              !0
         93        NEW                                              $55     'DateTimeZone'
         94        SEND_VAL_EX                                              'America%2FMexico_City'
         95        DO_FCALL                                      0          
         96        SEND_VAR_NO_REF_EX                                       $55
         97        DO_FCALL                                      0          
         98        ASSIGN                                                   !1, $54
   45    99        INIT_METHOD_CALL                                         !1, 'format'
        100        SEND_VAL_EX                                              'c'
        101        DO_FCALL                                      0  $59     
        102        CONCAT                                           ~60     $59, '%0A%0A'
        103        ECHO                                                     ~60
   46   104        ECHO                                                     'Set+timezone+using+method%3A%0A'
   47   105        NEW                                              $61     'DateTime'
        106        SEND_VAR_EX                                              !0
        107        DO_FCALL                                      0          
        108        ASSIGN                                                   !1, $61
   48   109        INIT_METHOD_CALL                                         !1, 'setTimezone'
        110        NEW                                              $64     'DateTimeZone'
        111        SEND_VAL_EX                                              'America%2FMexico_City'
        112        DO_FCALL                                      0          
        113        SEND_VAR_NO_REF_EX                                       $64
        114        DO_FCALL                                      0          
   49   115        INIT_METHOD_CALL                                         !1, 'format'
        116        SEND_VAL_EX                                              'c'
        117        DO_FCALL                                      0  $67     
        118        CONCAT                                           ~68     $67, '%0A'
        119        ECHO                                                     ~68
        120      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
154.13 ms | 1407 KiB | 13 Q