3v4l.org

run code in 300+ PHP versions simultaneously
<?php //Prior 8.1 for php +1 month https://www.php.net/manual/en/datetime.examples-arithmetic.php function printDiff($tz) { $d1 = new \DateTime("2015-06-01", new \DateTimeZone($tz)); $d2 = new \DateTime("2015-07-01", new \DateTimeZone($tz)); $diff = $d1->diff($d2); print($diff->format("Start: " . ((new \DateTime('@'.($d1->format("U"))))->format("Y-m-d H:i:s")) . " End: " . ((new \DateTime('@'.($d2->format("U"))))->format("Y-m-d H:i:s")) . " Year: %Y Month: %M Day: %D") .PHP_EOL); } \printDiff("UTC"); \printDiff("Australia/Melbourne");
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k2gS6
function name:  (null)
number of ops:  7
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    9     0  E >   INIT_FCALL                                               'printdiff'
          1        SEND_VAL                                                 'UTC'
          2        DO_FCALL                                      0          
   10     3        INIT_FCALL                                               'printdiff'
          4        SEND_VAL                                                 'Australia%2FMelbourne'
          5        DO_FCALL                                      0          
          6      > RETURN                                                   1

Function printdiff:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k2gS6
function name:  printDiff
number of ops:  51
compiled vars:  !0 = $tz, !1 = $d1, !2 = $d2, !3 = $diff
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1        NEW                                              $4      'DateTime'
          2        SEND_VAL_EX                                              '2015-06-01'
          3        NEW                                              $5      'DateTimeZone'
          4        SEND_VAR_EX                                              !0
          5        DO_FCALL                                      0          
          6        SEND_VAR_NO_REF_EX                                       $5
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !1, $4
    5     9        NEW                                              $9      'DateTime'
         10        SEND_VAL_EX                                              '2015-07-01'
         11        NEW                                              $10     'DateTimeZone'
         12        SEND_VAR_EX                                              !0
         13        DO_FCALL                                      0          
         14        SEND_VAR_NO_REF_EX                                       $10
         15        DO_FCALL                                      0          
         16        ASSIGN                                                   !2, $9
    6    17        INIT_METHOD_CALL                                         !1, 'diff'
         18        SEND_VAR_EX                                              !2
         19        DO_FCALL                                      0  $14     
         20        ASSIGN                                                   !3, $14
    7    21        INIT_METHOD_CALL                                         !3, 'format'
         22        NEW                                              $16     'DateTime'
         23        INIT_METHOD_CALL                                         !1, 'format'
         24        SEND_VAL_EX                                              'U'
         25        DO_FCALL                                      0  $17     
         26        CONCAT                                           ~18     '%40', $17
         27        SEND_VAL_EX                                              ~18
         28        DO_FCALL                                      0          
         29        INIT_METHOD_CALL                                         $16, 'format'
         30        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         31        DO_FCALL                                      0  $20     
         32        CONCAT                                           ~21     'Start%3A+', $20
         33        CONCAT                                           ~22     ~21, '+End%3A+'
         34        NEW                                              $23     'DateTime'
         35        INIT_METHOD_CALL                                         !2, 'format'
         36        SEND_VAL_EX                                              'U'
         37        DO_FCALL                                      0  $24     
         38        CONCAT                                           ~25     '%40', $24
         39        SEND_VAL_EX                                              ~25
         40        DO_FCALL                                      0          
         41        INIT_METHOD_CALL                                         $23, 'format'
         42        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         43        DO_FCALL                                      0  $27     
         44        CONCAT                                           ~28     ~22, $27
         45        CONCAT                                           ~29     ~28, '+Year%3A+%25Y+Month%3A+%25M+Day%3A+%25D'
         46        SEND_VAL_EX                                              ~29
         47        DO_FCALL                                      0  $30     
         48        CONCAT                                           ~31     $30, '%0A'
         49        ECHO                                                     ~31
    8    50      > RETURN                                                   null

End of function printdiff

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
137.57 ms | 1003 KiB | 15 Q