3v4l.org

run code in 300+ PHP versions simultaneously
<?php date_default_timezone_set('America/Montevideo'); $hoy = date('d-m-Y H:i:s'); $hoystr = strtotime($hoy); $mañana = date('d-m-Y H:i:s',strtotime('+1 day', $hoystr)); /*echo $hoy; echo "\n"; echo $mañana; echo "\n";*/ $time = strtotime(date('H:i',$hoystr)); $otro = strtotime(date('H:i','09:00:00')); echo "hora de ingreso: ".date('H:i',$hoystr); echo "\n"; echo "hora comienzo atencion: 09:00"; echo "\n"; echo "diferencia: ".date('H:i',$otro-$time); echo "\n"; echo getTimeDiff(date('H:i',$hoystr),"09:00"); FUNCTION getTimeDiff($dtime,$atime){ $nextDay=$dtime>$atime?1:0; $dep=EXPLODE(':',$dtime); $arr=EXPLODE(':',$atime); $diff=ABS(MKTIME($dep[0],$dep[1],0,DATE('n'),DATE('j'),DATE('y'))-MKTIME($arr[0],$arr[1],0,DATE('n'),DATE('j')+$nextDay,DATE('y'))); $hours=FLOOR($diff/(60*60)); $mins=FLOOR(($diff-($hours*60*60))/(60)); $secs=FLOOR(($diff-(($hours*60*60)+($mins*60)))); IF(STRLEN($hours)<2){$hours="0".$hours;} IF(STRLEN($mins)<2){$mins="0".$mins;} IF(STRLEN($secs)<2){$secs="0".$secs;} RETURN $hours.':'.$mins.':'.$secs; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/nNenC
function name:  (null)
number of ops:  63
compiled vars:  !0 = $hoy, !1 = $hoystr, !2 = $mañana, !3 = $time, !4 = $otro
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'date_default_timezone_set'
          1        SEND_VAL                                                 'America%2FMontevideo'
          2        DO_ICALL                                                 
    4     3        INIT_FCALL                                               'date'
          4        SEND_VAL                                                 'd-m-Y+H%3Ai%3As'
          5        DO_ICALL                                         $6      
          6        ASSIGN                                                   !0, $6
    5     7        INIT_FCALL                                               'strtotime'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                         $8      
         10        ASSIGN                                                   !1, $8
    6    11        INIT_FCALL                                               'date'
         12        SEND_VAL                                                 'd-m-Y+H%3Ai%3As'
         13        INIT_FCALL                                               'strtotime'
         14        SEND_VAL                                                 '%2B1+day'
         15        SEND_VAR                                                 !1
         16        DO_ICALL                                         $10     
         17        SEND_VAR                                                 $10
         18        DO_ICALL                                         $11     
         19        ASSIGN                                                   !2, $11
   11    20        INIT_FCALL                                               'strtotime'
         21        INIT_FCALL                                               'date'
         22        SEND_VAL                                                 'H%3Ai'
         23        SEND_VAR                                                 !1
         24        DO_ICALL                                         $13     
         25        SEND_VAR                                                 $13
         26        DO_ICALL                                         $14     
         27        ASSIGN                                                   !3, $14
   12    28        INIT_FCALL                                               'strtotime'
         29        INIT_FCALL                                               'date'
         30        SEND_VAL                                                 'H%3Ai'
         31        SEND_VAL                                                 '09%3A00%3A00'
         32        DO_ICALL                                         $16     
         33        SEND_VAR                                                 $16
         34        DO_ICALL                                         $17     
         35        ASSIGN                                                   !4, $17
   13    36        INIT_FCALL                                               'date'
         37        SEND_VAL                                                 'H%3Ai'
         38        SEND_VAR                                                 !1
         39        DO_ICALL                                         $19     
         40        CONCAT                                           ~20     'hora+de+ingreso%3A+', $19
         41        ECHO                                                     ~20
   14    42        ECHO                                                     '%0A'
   15    43        ECHO                                                     'hora+comienzo+atencion%3A+09%3A00'
   16    44        ECHO                                                     '%0A'
   17    45        INIT_FCALL                                               'date'
         46        SEND_VAL                                                 'H%3Ai'
         47        SUB                                              ~21     !4, !3
         48        SEND_VAL                                                 ~21
         49        DO_ICALL                                         $22     
         50        CONCAT                                           ~23     'diferencia%3A+', $22
         51        ECHO                                                     ~23
   18    52        ECHO                                                     '%0A'
   19    53        INIT_FCALL_BY_NAME                                       'getTimeDiff'
         54        INIT_FCALL                                               'date'
         55        SEND_VAL                                                 'H%3Ai'
         56        SEND_VAR                                                 !1
         57        DO_ICALL                                         $24     
         58        SEND_VAR_NO_REF_EX                                       $24
         59        SEND_VAL_EX                                              '09%3A00'
         60        DO_FCALL                                      0  $25     
         61        ECHO                                                     $25
   34    62      > RETURN                                                   1

Function gettimediff:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 6
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 87, Position 2 = 89
Branch analysis from position: 87
2 jumps found. (Code = 43) Position 1 = 92, Position 2 = 94
Branch analysis from position: 92
2 jumps found. (Code = 43) Position 1 = 97, Position 2 = 99
Branch analysis from position: 97
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 99
Branch analysis from position: 94
Branch analysis from position: 89
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 87, Position 2 = 89
Branch analysis from position: 87
Branch analysis from position: 89
filename:       /in/nNenC
function name:  getTimeDiff
number of ops:  105
compiled vars:  !0 = $dtime, !1 = $atime, !2 = $nextDay, !3 = $dep, !4 = $arr, !5 = $diff, !6 = $hours, !7 = $mins, !8 = $secs
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   21     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   23     2        IS_SMALLER                                               !1, !0
          3      > JMPZ                                                     ~9, ->6
          4    >   QM_ASSIGN                                        ~10     1
          5      > JMP                                                      ->7
          6    >   QM_ASSIGN                                        ~10     0
          7    >   ASSIGN                                                   !2, ~10
   24     8        INIT_FCALL                                               'explode'
          9        SEND_VAL                                                 '%3A'
         10        SEND_VAR                                                 !0
         11        DO_ICALL                                         $12     
         12        ASSIGN                                                   !3, $12
   25    13        INIT_FCALL                                               'explode'
         14        SEND_VAL                                                 '%3A'
         15        SEND_VAR                                                 !1
         16        DO_ICALL                                         $14     
         17        ASSIGN                                                   !4, $14
   26    18        INIT_FCALL                                               'abs'
         19        INIT_FCALL                                               'mktime'
         20        FETCH_DIM_R                                      ~16     !3, 0
         21        SEND_VAL                                                 ~16
         22        FETCH_DIM_R                                      ~17     !3, 1
         23        SEND_VAL                                                 ~17
         24        SEND_VAL                                                 0
         25        INIT_FCALL                                               'date'
         26        SEND_VAL                                                 'n'
         27        DO_ICALL                                         $18     
         28        SEND_VAR                                                 $18
         29        INIT_FCALL                                               'date'
         30        SEND_VAL                                                 'j'
         31        DO_ICALL                                         $19     
         32        SEND_VAR                                                 $19
         33        INIT_FCALL                                               'date'
         34        SEND_VAL                                                 'y'
         35        DO_ICALL                                         $20     
         36        SEND_VAR                                                 $20
         37        DO_ICALL                                         $21     
         38        INIT_FCALL                                               'mktime'
         39        FETCH_DIM_R                                      ~22     !4, 0
         40        SEND_VAL                                                 ~22
         41        FETCH_DIM_R                                      ~23     !4, 1
         42        SEND_VAL                                                 ~23
         43        SEND_VAL                                                 0
         44        INIT_FCALL                                               'date'
         45        SEND_VAL                                                 'n'
         46        DO_ICALL                                         $24     
         47        SEND_VAR                                                 $24
         48        INIT_FCALL                                               'date'
         49        SEND_VAL                                                 'j'
         50        DO_ICALL                                         $25     
         51        ADD                                              ~26     $25, !2
         52        SEND_VAL                                                 ~26
         53        INIT_FCALL                                               'date'
         54        SEND_VAL                                                 'y'
         55        DO_ICALL                                         $27     
         56        SEND_VAR                                                 $27
         57        DO_ICALL                                         $28     
         58        SUB                                              ~29     $21, $28
         59        SEND_VAL                                                 ~29
         60        DO_ICALL                                         $30     
         61        ASSIGN                                                   !5, $30
   27    62        INIT_FCALL                                               'floor'
         63        DIV                                              ~32     !5, 3600
         64        SEND_VAL                                                 ~32
         65        DO_ICALL                                         $33     
         66        ASSIGN                                                   !6, $33
   28    67        INIT_FCALL                                               'floor'
         68        MUL                                              ~35     !6, 60
         69        MUL                                              ~36     ~35, 60
         70        SUB                                              ~37     !5, ~36
         71        DIV                                              ~38     ~37, 60
         72        SEND_VAL                                                 ~38
         73        DO_ICALL                                         $39     
         74        ASSIGN                                                   !7, $39
   29    75        INIT_FCALL                                               'floor'
         76        MUL                                              ~41     !6, 60
         77        MUL                                              ~42     ~41, 60
         78        MUL                                              ~43     !7, 60
         79        ADD                                              ~44     ~42, ~43
         80        SUB                                              ~45     !5, ~44
         81        SEND_VAL                                                 ~45
         82        DO_ICALL                                         $46     
         83        ASSIGN                                                   !8, $46
   30    84        STRLEN                                           ~48     !6
         85        IS_SMALLER                                               ~48, 2
         86      > JMPZ                                                     ~49, ->89
         87    >   CONCAT                                           ~50     '0', !6
         88        ASSIGN                                                   !6, ~50
   31    89    >   STRLEN                                           ~52     !7
         90        IS_SMALLER                                               ~52, 2
         91      > JMPZ                                                     ~53, ->94
         92    >   CONCAT                                           ~54     '0', !7
         93        ASSIGN                                                   !7, ~54
   32    94    >   STRLEN                                           ~56     !8
         95        IS_SMALLER                                               ~56, 2
         96      > JMPZ                                                     ~57, ->99
         97    >   CONCAT                                           ~58     '0', !8
         98        ASSIGN                                                   !8, ~58
   33    99    >   CONCAT                                           ~60     !6, '%3A'
        100        CONCAT                                           ~61     ~60, !7
        101        CONCAT                                           ~62     ~61, '%3A'
        102        CONCAT                                           ~63     ~62, !8
        103      > RETURN                                                   ~63
   34   104*     > RETURN                                                   null

End of function gettimediff

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
215.11 ms | 1408 KiB | 27 Q