3v4l.org

run code in 300+ PHP versions simultaneously
<?php $transactions = array( '111-11111' => '05:50:07', '211-21111' => '06:02:58', '241-21311' => '06:43:00', '255-26711' => '07:58:00' ); list($hour, $minutes, $seconds) = explode(':', array_shift($transactions)); $first = (new DateTime())->setTime($hour, $minutes, $seconds); $endtime = $first->add(new DateInterval('PT1H')); foreach ($transactions as $key => $time) { list($hour, $minutes, $seconds) = explode(':', $time); $datetime = (new DateTime())->setTime($hour, $minutes, $seconds); printf("Transaction ID: %s, Date/Time: %s, Within an hour: %s<br>\n", $key, $time, ($datetime < $endtime ? 'Yes' : 'No') ); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 31, Position 2 = 64
Branch analysis from position: 31
2 jumps found. (Code = 78) Position 1 = 32, Position 2 = 64
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 60
Branch analysis from position: 58
1 jumps found. (Code = 42) Position 1 = 61
Branch analysis from position: 61
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 60
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 64
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 64
filename:       /in/9o5re
function name:  (null)
number of ops:  66
compiled vars:  !0 = $transactions, !1 = $hour, !2 = $minutes, !3 = $seconds, !4 = $first, !5 = $endtime, !6 = $time, !7 = $key, !8 = $datetime
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   10     1        INIT_FCALL                                               'explode'
          2        SEND_VAL                                                 '%3A'
          3        INIT_FCALL                                               'array_shift'
          4        SEND_REF                                                 !0
          5        DO_ICALL                                         $10     
          6        SEND_VAR                                                 $10
          7        DO_ICALL                                         $11     
          8        FETCH_LIST_R                                     $12     $11, 0
          9        ASSIGN                                                   !1, $12
         10        FETCH_LIST_R                                     $14     $11, 1
         11        ASSIGN                                                   !2, $14
         12        FETCH_LIST_R                                     $16     $11, 2
         13        ASSIGN                                                   !3, $16
         14        FREE                                                     $11
   11    15        NEW                                              $18     'DateTime'
         16        DO_FCALL                                      0          
         17        INIT_METHOD_CALL                                         $18, 'setTime'
         18        SEND_VAR_EX                                              !1
         19        SEND_VAR_EX                                              !2
         20        SEND_VAR_EX                                              !3
         21        DO_FCALL                                      0  $20     
         22        ASSIGN                                                   !4, $20
   12    23        INIT_METHOD_CALL                                         !4, 'add'
         24        NEW                                              $22     'DateInterval'
         25        SEND_VAL_EX                                              'PT1H'
         26        DO_FCALL                                      0          
         27        SEND_VAR_NO_REF_EX                                       $22
         28        DO_FCALL                                      0  $24     
         29        ASSIGN                                                   !5, $24
   13    30      > FE_RESET_R                                       $26     !0, ->64
         31    > > FE_FETCH_R                                       ~27     $26, !6, ->64
         32    >   ASSIGN                                                   !7, ~27
   14    33        INIT_FCALL                                               'explode'
         34        SEND_VAL                                                 '%3A'
         35        SEND_VAR                                                 !6
         36        DO_ICALL                                         $29     
         37        FETCH_LIST_R                                     $30     $29, 0
         38        ASSIGN                                                   !1, $30
         39        FETCH_LIST_R                                     $32     $29, 1
         40        ASSIGN                                                   !2, $32
         41        FETCH_LIST_R                                     $34     $29, 2
         42        ASSIGN                                                   !3, $34
         43        FREE                                                     $29
   15    44        NEW                                              $36     'DateTime'
         45        DO_FCALL                                      0          
         46        INIT_METHOD_CALL                                         $36, 'setTime'
         47        SEND_VAR_EX                                              !1
         48        SEND_VAR_EX                                              !2
         49        SEND_VAR_EX                                              !3
         50        DO_FCALL                                      0  $38     
         51        ASSIGN                                                   !8, $38
   16    52        INIT_FCALL                                               'printf'
         53        SEND_VAL                                                 'Transaction+ID%3A+%25s%2C+Date%2FTime%3A+%25s%2C+Within+an+hour%3A+%25s%3Cbr%3E%0A'
   17    54        SEND_VAR                                                 !7
   18    55        SEND_VAR                                                 !6
   19    56        IS_SMALLER                                               !8, !5
         57      > JMPZ                                                     ~40, ->60
         58    >   QM_ASSIGN                                        ~41     'Yes'
         59      > JMP                                                      ->61
         60    >   QM_ASSIGN                                        ~41     'No'
         61    >   SEND_VAL                                                 ~41
         62        DO_ICALL                                                 
   13    63      > JMP                                                      ->31
         64    >   FE_FREE                                                  $26
   21    65      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
146.94 ms | 1405 KiB | 19 Q