3v4l.org

run code in 300+ PHP versions simultaneously
<?php $in = trim('November 8 - 10'); $now = new DateTime(); // Defaults to now $start = DateTime::createFromFormat('F j+', $in); // Parse month and day, ignore the rest if ($now > $start) { $start->modify("next year"); } $end = clone $start; $end->setDate( $end->format('Y'), // $start year $end->format('n'), // $start month substr($in, strrpos($in, ' ') + 1) // trailing bit of $in for day ); echo $start->format("Y-m-d"), "\n"; echo $end->format("Y-m-d");
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 17
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
filename:       /in/0p8M6
function name:  (null)
number of ops:  49
compiled vars:  !0 = $in, !1 = $now, !2 = $start, !3 = $end
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'trim'
          1        SEND_VAL                                                 'November+8+-+10'
          2        DO_ICALL                                         $4      
          3        ASSIGN                                                   !0, $4
    6     4        NEW                                              $6      'DateTime'
          5        DO_FCALL                                      0          
          6        ASSIGN                                                   !1, $6
    7     7        INIT_STATIC_METHOD_CALL                                  'DateTime', 'createFromFormat'
          8        SEND_VAL                                                 'F+j%2B'
          9        SEND_VAR                                                 !0
         10        DO_FCALL                                      0  $9      
         11        ASSIGN                                                   !2, $9
    9    12        IS_SMALLER                                               !2, !1
         13      > JMPZ                                                     ~11, ->17
   10    14    >   INIT_METHOD_CALL                                         !2, 'modify'
         15        SEND_VAL_EX                                              'next+year'
         16        DO_FCALL                                      0          
   13    17    >   CLONE                                            ~13     !2
         18        ASSIGN                                                   !3, ~13
   14    19        INIT_METHOD_CALL                                         !3, 'setDate'
   15    20        INIT_METHOD_CALL                                         !3, 'format'
         21        SEND_VAL_EX                                              'Y'
         22        DO_FCALL                                      0  $15     
         23        SEND_VAR_NO_REF_EX                                       $15
   16    24        INIT_METHOD_CALL                                         !3, 'format'
         25        SEND_VAL_EX                                              'n'
         26        DO_FCALL                                      0  $16     
         27        SEND_VAR_NO_REF_EX                                       $16
   17    28        INIT_FCALL                                               'substr'
         29        SEND_VAR                                                 !0
         30        INIT_FCALL                                               'strrpos'
         31        SEND_VAR                                                 !0
         32        SEND_VAL                                                 '+'
         33        DO_ICALL                                         $17     
         34        ADD                                              ~18     $17, 1
         35        SEND_VAL                                                 ~18
         36        DO_ICALL                                         $19     
         37        SEND_VAR_NO_REF_EX                                       $19
         38        DO_FCALL                                      0          
   20    39        INIT_METHOD_CALL                                         !2, 'format'
         40        SEND_VAL_EX                                              'Y-m-d'
         41        DO_FCALL                                      0  $21     
         42        ECHO                                                     $21
         43        ECHO                                                     '%0A'
   21    44        INIT_METHOD_CALL                                         !3, 'format'
         45        SEND_VAL_EX                                              'Y-m-d'
         46        DO_FCALL                                      0  $22     
         47        ECHO                                                     $22
         48      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
174.81 ms | 1400 KiB | 19 Q