3v4l.org

run code in 300+ PHP versions simultaneously
<?php $daysInMonth = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); for ($year = 1500; $year < 2000; $year++) { for ($month = 1; $month <= 12; $month++) { for ($day = 1; $day < $daysInMonth[$month]; $day++) { $baseString = sprintf("%4d-%02d-%02d 00:00:00", $year, $month, $day); $timestamp = strtotime($baseString); $roundTrip = date("Y-m-d H:i:s", $timestamp); if ($baseString !== $roundTrip) { echo "$baseString ($timestamp) $roundTrip\n"; } } } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 3
Branch analysis from position: 42
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 5
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 3
Branch analysis from position: 42
Branch analysis from position: 3
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 7
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 5
Branch analysis from position: 39
Branch analysis from position: 5
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 32
Branch analysis from position: 25
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 7
Branch analysis from position: 36
Branch analysis from position: 7
Branch analysis from position: 32
filename:       /in/ThjFd
function name:  (null)
number of ops:  43
compiled vars:  !0 = $daysInMonth, !1 = $year, !2 = $month, !3 = $day, !4 = $baseString, !5 = $timestamp, !6 = $roundTrip
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
    4     1        ASSIGN                                                   !1, 1500
          2      > JMP                                                      ->40
    5     3    >   ASSIGN                                                   !2, 1
          4      > JMP                                                      ->37
    6     5    >   ASSIGN                                                   !3, 1
          6      > JMP                                                      ->33
    7     7    >   INIT_FCALL                                               'sprintf'
          8        SEND_VAL                                                 '%254d-%2502d-%2502d+00%3A00%3A00'
          9        SEND_VAR                                                 !1
         10        SEND_VAR                                                 !2
         11        SEND_VAR                                                 !3
         12        DO_ICALL                                         $11     
         13        ASSIGN                                                   !4, $11
    8    14        INIT_FCALL                                               'strtotime'
         15        SEND_VAR                                                 !4
         16        DO_ICALL                                         $13     
         17        ASSIGN                                                   !5, $13
    9    18        INIT_FCALL                                               'date'
         19        SEND_VAL                                                 'Y-m-d+H%3Ai%3As'
         20        SEND_VAR                                                 !5
         21        DO_ICALL                                         $15     
         22        ASSIGN                                                   !6, $15
   10    23        IS_NOT_IDENTICAL                                         !4, !6
         24      > JMPZ                                                     ~17, ->32
   11    25    >   ROPE_INIT                                     6  ~19     !4
         26        ROPE_ADD                                      1  ~19     ~19, '+%28'
         27        ROPE_ADD                                      2  ~19     ~19, !5
         28        ROPE_ADD                                      3  ~19     ~19, '%29+'
         29        ROPE_ADD                                      4  ~19     ~19, !6
         30        ROPE_END                                      5  ~18     ~19, '%0A'
         31        ECHO                                                     ~18
    6    32    >   PRE_INC                                                  !3
         33    >   FETCH_DIM_R                                      ~23     !0, !2
         34        IS_SMALLER                                               !3, ~23
         35      > JMPNZ                                                    ~24, ->7
    5    36    >   PRE_INC                                                  !2
         37    >   IS_SMALLER_OR_EQUAL                                      !2, 12
         38      > JMPNZ                                                    ~26, ->5
    4    39    >   PRE_INC                                                  !1
         40    >   IS_SMALLER                                               !1, 2000
         41      > JMPNZ                                                    ~28, ->3
   15    42    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.99 ms | 945 KiB | 20 Q