3v4l.org

run code in 300+ PHP versions simultaneously
<?php $today = new DateTime; $randomAfternoonTime = (clone $today)->setTime(13, 25); $randomNightTime = (clone $today)->add(new DateInterval('P1D'))->setTime(2, 23); // Times relevant to Amsterdam on 2020-09-23. $sunsetTime = (clone $today)->setTime(19, 36); $sunriseTime = (clone $today)->add(new DateInterval('P1D'))->setTime(7, 30); echo "Sunset at:\n" . $sunsetTime->format('Y-m-d H:i') . "\n\n"; echo "Sunrise at:\n" . $sunriseTime->format('Y-m-d H:i') . "\n\n"; echo "Some time in the afternoon (NOT in between sunset/sunrise):\n" . $randomAfternoonTime->format('Y-m-d H:i') . "\n\n"; echo "At night (in between sunset/sunrise):\n" . $randomNightTime->format('Y-m-d H:i') . "\n\n"; // Shows bool(false): 13:25 is not in between sunset/sunrise. var_dump($randomAfternoonTime->getTimestamp() > $sunsetTime->getTimestamp() && $randomAfternoonTime->getTimestamp() < $sunriseTime->getTimestamp()); // Shows bool(true): 02:23 is in between sunset/sunrise. var_dump($randomNightTime->getTimestamp() > $sunsetTime->getTimestamp() && $randomNightTime->getTimestamp() < $sunriseTime->getTimestamp());
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 70, Position 2 = 76
Branch analysis from position: 70
2 jumps found. (Code = 46) Position 1 = 85, Position 2 = 91
Branch analysis from position: 85
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 91
Branch analysis from position: 76
filename:       /in/lLUfL
function name:  (null)
number of ops:  94
compiled vars:  !0 = $today, !1 = $randomAfternoonTime, !2 = $randomNightTime, !3 = $sunsetTime, !4 = $sunriseTime
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   NEW                                              $5      'DateTime'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $5
    4     3        CLONE                                            ~8      !0
          4        INIT_METHOD_CALL                                         ~8, 'setTime'
          5        SEND_VAL_EX                                              13
          6        SEND_VAL_EX                                              25
          7        DO_FCALL                                      0  $9      
          8        ASSIGN                                                   !1, $9
    5     9        CLONE                                            ~11     !0
         10        INIT_METHOD_CALL                                         ~11, 'add'
         11        NEW                                              $12     'DateInterval'
         12        SEND_VAL_EX                                              'P1D'
         13        DO_FCALL                                      0          
         14        SEND_VAR_NO_REF_EX                                       $12
         15        DO_FCALL                                      0  $14     
         16        INIT_METHOD_CALL                                         $14, 'setTime'
         17        SEND_VAL_EX                                              2
         18        SEND_VAL_EX                                              23
         19        DO_FCALL                                      0  $15     
         20        ASSIGN                                                   !2, $15
    8    21        CLONE                                            ~17     !0
         22        INIT_METHOD_CALL                                         ~17, 'setTime'
         23        SEND_VAL_EX                                              19
         24        SEND_VAL_EX                                              36
         25        DO_FCALL                                      0  $18     
         26        ASSIGN                                                   !3, $18
    9    27        CLONE                                            ~20     !0
         28        INIT_METHOD_CALL                                         ~20, 'add'
         29        NEW                                              $21     'DateInterval'
         30        SEND_VAL_EX                                              'P1D'
         31        DO_FCALL                                      0          
         32        SEND_VAR_NO_REF_EX                                       $21
         33        DO_FCALL                                      0  $23     
         34        INIT_METHOD_CALL                                         $23, 'setTime'
         35        SEND_VAL_EX                                              7
         36        SEND_VAL_EX                                              30
         37        DO_FCALL                                      0  $24     
         38        ASSIGN                                                   !4, $24
   11    39        INIT_METHOD_CALL                                         !3, 'format'
         40        SEND_VAL_EX                                              'Y-m-d+H%3Ai'
         41        DO_FCALL                                      0  $26     
         42        CONCAT                                           ~27     'Sunset+at%3A%0A', $26
         43        CONCAT                                           ~28     ~27, '%0A%0A'
         44        ECHO                                                     ~28
   12    45        INIT_METHOD_CALL                                         !4, 'format'
         46        SEND_VAL_EX                                              'Y-m-d+H%3Ai'
         47        DO_FCALL                                      0  $29     
         48        CONCAT                                           ~30     'Sunrise+at%3A%0A', $29
         49        CONCAT                                           ~31     ~30, '%0A%0A'
         50        ECHO                                                     ~31
   14    51        INIT_METHOD_CALL                                         !1, 'format'
         52        SEND_VAL_EX                                              'Y-m-d+H%3Ai'
         53        DO_FCALL                                      0  $32     
         54        CONCAT                                           ~33     'Some+time+in+the+afternoon+%28NOT+in+between+sunset%2Fsunrise%29%3A%0A', $32
         55        CONCAT                                           ~34     ~33, '%0A%0A'
         56        ECHO                                                     ~34
   15    57        INIT_METHOD_CALL                                         !2, 'format'
         58        SEND_VAL_EX                                              'Y-m-d+H%3Ai'
         59        DO_FCALL                                      0  $35     
         60        CONCAT                                           ~36     'At+night+%28in+between+sunset%2Fsunrise%29%3A%0A', $35
         61        CONCAT                                           ~37     ~36, '%0A%0A'
         62        ECHO                                                     ~37
   18    63        INIT_FCALL                                               'var_dump'
         64        INIT_METHOD_CALL                                         !1, 'getTimestamp'
         65        DO_FCALL                                      0  $38     
         66        INIT_METHOD_CALL                                         !3, 'getTimestamp'
         67        DO_FCALL                                      0  $39     
         68        IS_SMALLER                                       ~40     $39, $38
         69      > JMPZ_EX                                          ~40     ~40, ->76
         70    >   INIT_METHOD_CALL                                         !1, 'getTimestamp'
         71        DO_FCALL                                      0  $41     
         72        INIT_METHOD_CALL                                         !4, 'getTimestamp'
         73        DO_FCALL                                      0  $42     
         74        IS_SMALLER                                       ~43     $41, $42
         75        BOOL                                             ~40     ~43
         76    >   SEND_VAL                                                 ~40
         77        DO_ICALL                                                 
   21    78        INIT_FCALL                                               'var_dump'
         79        INIT_METHOD_CALL                                         !2, 'getTimestamp'
         80        DO_FCALL                                      0  $45     
         81        INIT_METHOD_CALL                                         !3, 'getTimestamp'
         82        DO_FCALL                                      0  $46     
         83        IS_SMALLER                                       ~47     $46, $45
         84      > JMPZ_EX                                          ~47     ~47, ->91
         85    >   INIT_METHOD_CALL                                         !2, 'getTimestamp'
         86        DO_FCALL                                      0  $48     
         87        INIT_METHOD_CALL                                         !4, 'getTimestamp'
         88        DO_FCALL                                      0  $49     
         89        IS_SMALLER                                       ~50     $48, $49
         90        BOOL                                             ~47     ~50
         91    >   SEND_VAL                                                 ~47
         92        DO_ICALL                                                 
         93      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.27 ms | 1014 KiB | 14 Q