3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start_date = new DateTime( '2013-01-01 00:00:00' ); $end_date = new DateTime( '2013-12-31 23:59:59' ); $end_date_ts = $end_date->getTimestamp(); $now = new DateTime( '2013-12-10 15:45:34' ); $now_ts = $now->getTimestamp(); $interval = new DateInterval( 'P1W' ); $periods = new DatePeriod( $start_date, $interval, $end_date ); /** @var \DateTime $period */ foreach($periods as $period){ $periodEnd = clone $period; $periodEnd->add($interval); if($period < $now && $now < $periodEnd){ $result = iterator_to_array(new \DatePeriod($period, $interval, $periodEnd->add($interval))); $int_start_date = $result[0]; $int_end_date = $result[1]; } } var_dump( $int_start_date->format( 'Y-m-d H:i:s' ) ); var_dump( $int_end_date->format( 'Y-m-d H:i:s' ) );
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 29, Position 2 = 57
Branch analysis from position: 29
2 jumps found. (Code = 78) Position 1 = 30, Position 2 = 57
Branch analysis from position: 30
2 jumps found. (Code = 46) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 56
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
Branch analysis from position: 56
Branch analysis from position: 39
Branch analysis from position: 57
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 57
filename:       /in/CreL0
function name:  (null)
number of ops:  71
compiled vars:  !0 = $start_date, !1 = $end_date, !2 = $end_date_ts, !3 = $now, !4 = $now_ts, !5 = $interval, !6 = $periods, !7 = $period, !8 = $periodEnd, !9 = $result, !10 = $int_start_date, !11 = $int_end_date
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   NEW                                              $12     'DateTime'
          1        SEND_VAL_EX                                              '2013-01-01+00%3A00%3A00'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $12
    3     4        NEW                                              $15     'DateTime'
          5        SEND_VAL_EX                                              '2013-12-31+23%3A59%3A59'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !1, $15
    4     8        INIT_METHOD_CALL                                         !1, 'getTimestamp'
          9        DO_FCALL                                      0  $18     
         10        ASSIGN                                                   !2, $18
    5    11        NEW                                              $20     'DateTime'
         12        SEND_VAL_EX                                              '2013-12-10+15%3A45%3A34'
         13        DO_FCALL                                      0          
         14        ASSIGN                                                   !3, $20
    6    15        INIT_METHOD_CALL                                         !3, 'getTimestamp'
         16        DO_FCALL                                      0  $23     
         17        ASSIGN                                                   !4, $23
    7    18        NEW                                              $25     'DateInterval'
         19        SEND_VAL_EX                                              'P1W'
         20        DO_FCALL                                      0          
         21        ASSIGN                                                   !5, $25
    8    22        NEW                                              $28     'DatePeriod'
         23        SEND_VAR_EX                                              !0
         24        SEND_VAR_EX                                              !5
         25        SEND_VAR_EX                                              !1
         26        DO_FCALL                                      0          
         27        ASSIGN                                                   !6, $28
   11    28      > FE_RESET_R                                       $31     !6, ->57
         29    > > FE_FETCH_R                                               $31, !7, ->57
   12    30    >   CLONE                                            ~32     !7
         31        ASSIGN                                                   !8, ~32
   13    32        INIT_METHOD_CALL                                         !8, 'add'
         33        SEND_VAR_EX                                              !5
         34        DO_FCALL                                      0          
   14    35        IS_SMALLER                                       ~35     !7, !3
         36      > JMPZ_EX                                          ~35     ~35, ->39
         37    >   IS_SMALLER                                       ~36     !3, !8
         38        BOOL                                             ~35     ~36
         39    > > JMPZ                                                     ~35, ->56
   15    40    >   INIT_FCALL                                               'iterator_to_array'
         41        NEW                                              $37     'DatePeriod'
         42        SEND_VAR_EX                                              !7
         43        SEND_VAR_EX                                              !5
         44        INIT_METHOD_CALL                                         !8, 'add'
         45        SEND_VAR_EX                                              !5
         46        DO_FCALL                                      0  $38     
         47        SEND_VAR_NO_REF_EX                                       $38
         48        DO_FCALL                                      0          
         49        SEND_VAR                                                 $37
         50        DO_ICALL                                         $40     
         51        ASSIGN                                                   !9, $40
   16    52        FETCH_DIM_R                                      ~42     !9, 0
         53        ASSIGN                                                   !10, ~42
   17    54        FETCH_DIM_R                                      ~44     !9, 1
         55        ASSIGN                                                   !11, ~44
   11    56    > > JMP                                                      ->29
         57    >   FE_FREE                                                  $31
   21    58        INIT_FCALL                                               'var_dump'
         59        INIT_METHOD_CALL                                         !10, 'format'
         60        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         61        DO_FCALL                                      0  $46     
         62        SEND_VAR                                                 $46
         63        DO_ICALL                                                 
   22    64        INIT_FCALL                                               'var_dump'
         65        INIT_METHOD_CALL                                         !11, 'format'
         66        SEND_VAL_EX                                              'Y-m-d+H%3Ai%3As'
         67        DO_FCALL                                      0  $48     
         68        SEND_VAR                                                 $48
         69        DO_ICALL                                                 
         70      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.5 ms | 1400 KiB | 17 Q