3v4l.org

run code in 300+ PHP versions simultaneously
<?php $date = 'September 04 2014 03:00:00 PM PDT'; $exp_date = strtotime($date); $now = time(); if ($now < $exp_date) { ?> <script> // Count down milliseconds = server_end - server_now = client_end - client_now var server_end = <?php echo $exp_date; ?> * 1000; var server_now = <?php echo time(); ?> * 1000; var client_now = new Date().getTime(); var end = server_end - server_now + client_now; // this is the real end time var _second = 1000; var _minute = _second * 60; var _hour = _minute * 60; var _day = _hour * 24 var timer; function showRemaining() { var now = new Date(); var distance = end - now; if (distance < 0 ) { clearInterval( timer ); document.getElementById('countdown').innerHTML = 'EXPIRED!'; return; } var days = Math.floor(distance / _day); var hours = Math.floor( (distance % _day ) / _hour ); var minutes = Math.floor( (distance % _hour) / _minute ); var seconds = Math.floor( (distance % _minute) / _second ); var countdown = document.getElementById('countdown'); countdown.innerHTML = ''; if (days) { countdown.innerHTML += 'Days: ' + days + '<br />'; } countdown.innerHTML += 'Hours: ' + hours+ '<br />'; countdown.innerHTML += 'Minutes: ' + minutes+ '<br />'; countdown.innerHTML += 'Seconds: ' + seconds+ '<br />'; } timer = setInterval(showRemaining, 1000); </script> <?php } else { echo "Times Up"; } ?> <div id="countdown"></div>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 18
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/2ANVZ
function name:  (null)
number of ops:  21
compiled vars:  !0 = $date, !1 = $exp_date, !2 = $now
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'September+04+2014+03%3A00%3A00+PM+PDT'
    3     1        INIT_FCALL                                               'strtotime'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $4      
          4        ASSIGN                                                   !1, $4
    4     5        INIT_FCALL                                               'time'
          6        DO_ICALL                                         $6      
          7        ASSIGN                                                   !2, $6
    6     8        IS_SMALLER                                               !2, !1
          9      > JMPZ                                                     ~8, ->18
    8    10    >   ECHO                                                     '%3Cscript%3E%0A%2F%2F+Count+down+milliseconds+%3D+server_end+-+server_now+%3D+client_end+-+client_now%0Avar+server_end+%3D+'
   10    11        ECHO                                                     !1
         12        ECHO                                                     '+%2A+1000%3B%0Avar+server_now+%3D+'
   11    13        INIT_FCALL                                               'time'
         14        DO_ICALL                                         $9      
         15        ECHO                                                     $9
         16        ECHO                                                     '+%2A+1000%3B%0Avar+client_now+%3D+new+Date%28%29.getTime%28%29%3B%0Avar+end+%3D+server_end+-+server_now+%2B+client_now%3B+%2F%2F+this+is+the+real+end+time%0A%0Avar+_second+%3D+1000%3B%0Avar+_minute+%3D+_second+%2A+60%3B%0Avar+_hour+%3D+_minute+%2A+60%3B%0Avar+_day+%3D+_hour+%2A+24%0Avar+timer%3B%0A%0Afunction+showRemaining%28%29%0A%7B%0A++++var+now+%3D+new+Date%28%29%3B%0A++++var+distance+%3D+end+-+now%3B%0A++++if+%28distance+%3C+0+%29+%7B%0A+++++++clearInterval%28+timer+%29%3B%0A+++++++document.getElementById%28%27countdown%27%29.innerHTML+%3D+%27EXPIRED%21%27%3B%0A%0A+++++++return%3B%0A++++%7D%0A++++var+days+%3D+Math.floor%28distance+%2F+_day%29%3B%0A++++var+hours+%3D+Math.floor%28+%28distance+%25+_day+%29+%2F+_hour+%29%3B%0A++++var+minutes+%3D+Math.floor%28+%28distance+%25+_hour%29+%2F+_minute+%29%3B%0A++++var+seconds+%3D+Math.floor%28+%28distance+%25+_minute%29+%2F+_second+%29%3B%0A%0A++++var+countdown+%3D+document.getElementById%28%27countdown%27%29%3B%0A++++countdown.innerHTML+%3D+%27%27%3B%0A++++if+%28days%29+%7B%0A++++++++countdown.innerHTML+%2B%3D+%27Days%3A+%27+%2B+days+%2B+%27%3Cbr+%2F%3E%27%3B%0A++++%7D%0A++++countdown.innerHTML+%2B%3D+%27Hours%3A+%27+%2B+hours%2B+%27%3Cbr+%2F%3E%27%3B%0A++++countdown.innerHTML+%2B%3D+%27Minutes%3A+%27+%2B+minutes%2B+%27%3Cbr+%2F%3E%27%3B%0A++++countdown.innerHTML+%2B%3D+%27Seconds%3A+%27+%2B+seconds%2B+%27%3Cbr+%2F%3E%27%3B%0A%7D%0A%0Atimer+%3D+setInterval%28showRemaining%2C+1000%29%3B%0A%3C%2Fscript%3E%0A'
         17      > JMP                                                      ->19
   50    18    >   ECHO                                                     'Times+Up'
   53    19    >   ECHO                                                     '%3Cdiv+id%3D%22countdown%22%3E%3C%2Fdiv%3E'
         20      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
142.94 ms | 1396 KiB | 17 Q