3v4l.org

run code in 300+ PHP versions simultaneously
<?php $year=2021; $month=7; $day=5; $index=-1; $period='day'; // strtotime test $dateString = $year . "-" . $month . "-" . $day . " -" . $index . " " . $period; $timestamp1 = strtotime("{$year}-{$month}-{$day} -{$index} {$period}"); $dateString1 = date('Y-m-d', $timestamp1); // DateTime test $dateStamp = new \DateTime("{$year}-{$month}-{$day}"); $dateStamp->modify("-{$index} {$period}"); $timestamp2 = $dateStamp->getTimeStamp(); $dateString2 = date('Y-m-d', $timestamp2); echo $dateString . PHP_EOL; echo "strtotime: " . $timestamp1 . "(" . $dateString1 . ")" . PHP_EOL; echo "DateTime: " . $timestamp2 . "(" . $dateString1 . ")";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/aMlICM
function name:  (null)
number of ops:  70
compiled vars:  !0 = $year, !1 = $month, !2 = $day, !3 = $index, !4 = $period, !5 = $dateString, !6 = $timestamp1, !7 = $dateString1, !8 = $dateStamp, !9 = $timestamp2, !10 = $dateString2
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 2021
    3     1        ASSIGN                                                   !1, 7
    4     2        ASSIGN                                                   !2, 5
    5     3        ASSIGN                                                   !3, -1
    6     4        ASSIGN                                                   !4, 'day'
    9     5        CONCAT                                           ~16     !0, '-'
          6        CONCAT                                           ~17     ~16, !1
          7        CONCAT                                           ~18     ~17, '-'
          8        CONCAT                                           ~19     ~18, !2
          9        CONCAT                                           ~20     ~19, '+-'
         10        CONCAT                                           ~21     ~20, !3
         11        CONCAT                                           ~22     ~21, '+'
         12        CONCAT                                           ~23     ~22, !4
         13        ASSIGN                                                   !5, ~23
   10    14        INIT_FCALL                                               'strtotime'
         15        ROPE_INIT                                     9  ~26     !0
         16        ROPE_ADD                                      1  ~26     ~26, '-'
         17        ROPE_ADD                                      2  ~26     ~26, !1
         18        ROPE_ADD                                      3  ~26     ~26, '-'
         19        ROPE_ADD                                      4  ~26     ~26, !2
         20        ROPE_ADD                                      5  ~26     ~26, '+-'
         21        ROPE_ADD                                      6  ~26     ~26, !3
         22        ROPE_ADD                                      7  ~26     ~26, '+'
         23        ROPE_END                                      8  ~25     ~26, !4
         24        SEND_VAL                                                 ~25
         25        DO_ICALL                                         $31     
         26        ASSIGN                                                   !6, $31
   11    27        INIT_FCALL                                               'date'
         28        SEND_VAL                                                 'Y-m-d'
         29        SEND_VAR                                                 !6
         30        DO_ICALL                                         $33     
         31        ASSIGN                                                   !7, $33
   14    32        NEW                                              $35     'DateTime'
         33        ROPE_INIT                                     5  ~37     !0
         34        ROPE_ADD                                      1  ~37     ~37, '-'
         35        ROPE_ADD                                      2  ~37     ~37, !1
         36        ROPE_ADD                                      3  ~37     ~37, '-'
         37        ROPE_END                                      4  ~36     ~37, !2
         38        SEND_VAL_EX                                              ~36
         39        DO_FCALL                                      0          
         40        ASSIGN                                                   !8, $35
   15    41        INIT_METHOD_CALL                                         !8, 'modify'
         42        ROPE_INIT                                     4  ~43     '-'
         43        ROPE_ADD                                      1  ~43     ~43, !3
         44        ROPE_ADD                                      2  ~43     ~43, '+'
         45        ROPE_END                                      3  ~42     ~43, !4
         46        SEND_VAL_EX                                              ~42
         47        DO_FCALL                                      0          
   16    48        INIT_METHOD_CALL                                         !8, 'getTimeStamp'
         49        DO_FCALL                                      0  $46     
         50        ASSIGN                                                   !9, $46
   17    51        INIT_FCALL                                               'date'
         52        SEND_VAL                                                 'Y-m-d'
         53        SEND_VAR                                                 !9
         54        DO_ICALL                                         $48     
         55        ASSIGN                                                   !10, $48
   19    56        CONCAT                                           ~50     !5, '%0A'
         57        ECHO                                                     ~50
   20    58        CONCAT                                           ~51     'strtotime%3A+', !6
         59        CONCAT                                           ~52     ~51, '%28'
         60        CONCAT                                           ~53     ~52, !7
         61        CONCAT                                           ~54     ~53, '%29'
         62        CONCAT                                           ~55     ~54, '%0A'
         63        ECHO                                                     ~55
   21    64        CONCAT                                           ~56     'DateTime%3A+', !9
         65        CONCAT                                           ~57     ~56, '%28'
         66        CONCAT                                           ~58     ~57, !7
         67        CONCAT                                           ~59     ~58, '%29'
         68        ECHO                                                     ~59
         69      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
133.89 ms | 1016 KiB | 15 Q