3v4l.org

run code in 300+ PHP versions simultaneously
<?php //Enter your code here, enjoy! $fechaMIN = "2011-01-01"; $fechaMAX = "2012-05-31"; $ts1 = strtotime( $fechaMIN ); $ts2 = strtotime( $fechaMAX ); $year1 = date( 'Y', $ts1 ); $year2 = date( 'Y', $ts2 ); $month1 = date( 'm', $ts1 ); $month2 = date( 'm', $ts2 ); $day1 = date( 'd', $ts1 ); $day2 = date( 'd', $ts2 ); $month1_days = date( 't', $ts1 ); $month2_days = date( 't', $ts2 ); $d1 = new DateTime( date( 'Y-m-d', $ts1 ) ); $d2 = new DateTime( date( 'Y-m-d', strtotime( $fechaMAX .' +1 day') ) ); $diff = $d2->diff( $d1, true ); $month2_days = (int) date( 't ', $d2->getTimestamp() ); echo "$fechaMIN >> $fechaMAX >>>> " . date( 'Y-m-d ', $d1->getTimestamp() ) . ' >> ' . date( 'Y-m-d ', $d2->getTimestamp() ) ; $diff_months = round( $diff->y * 12 + $diff->m + ( ( $diff->d ) / $month2_days ), 6 ); echo " >>> ". $diff_months .PHP_EOL;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9LLVh
function name:  (null)
number of ops:  119
compiled vars:  !0 = $fechaMIN, !1 = $fechaMAX, !2 = $ts1, !3 = $ts2, !4 = $year1, !5 = $year2, !6 = $month1, !7 = $month2, !8 = $day1, !9 = $day2, !10 = $month1_days, !11 = $month2_days, !12 = $d1, !13 = $d2, !14 = $diff, !15 = $diff_months
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '2011-01-01'
    4     1        ASSIGN                                                   !1, '2012-05-31'
    5     2        INIT_FCALL                                               'strtotime'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $18     
          5        ASSIGN                                                   !2, $18
    6     6        INIT_FCALL                                               'strtotime'
          7        SEND_VAR                                                 !1
          8        DO_ICALL                                         $20     
          9        ASSIGN                                                   !3, $20
    8    10        INIT_FCALL                                               'date'
         11        SEND_VAL                                                 'Y'
         12        SEND_VAR                                                 !2
         13        DO_ICALL                                         $22     
         14        ASSIGN                                                   !4, $22
    9    15        INIT_FCALL                                               'date'
         16        SEND_VAL                                                 'Y'
         17        SEND_VAR                                                 !3
         18        DO_ICALL                                         $24     
         19        ASSIGN                                                   !5, $24
   10    20        INIT_FCALL                                               'date'
         21        SEND_VAL                                                 'm'
         22        SEND_VAR                                                 !2
         23        DO_ICALL                                         $26     
         24        ASSIGN                                                   !6, $26
   11    25        INIT_FCALL                                               'date'
         26        SEND_VAL                                                 'm'
         27        SEND_VAR                                                 !3
         28        DO_ICALL                                         $28     
         29        ASSIGN                                                   !7, $28
   12    30        INIT_FCALL                                               'date'
         31        SEND_VAL                                                 'd'
         32        SEND_VAR                                                 !2
         33        DO_ICALL                                         $30     
         34        ASSIGN                                                   !8, $30
   13    35        INIT_FCALL                                               'date'
         36        SEND_VAL                                                 'd'
         37        SEND_VAR                                                 !3
         38        DO_ICALL                                         $32     
         39        ASSIGN                                                   !9, $32
   14    40        INIT_FCALL                                               'date'
         41        SEND_VAL                                                 't'
         42        SEND_VAR                                                 !2
         43        DO_ICALL                                         $34     
         44        ASSIGN                                                   !10, $34
   15    45        INIT_FCALL                                               'date'
         46        SEND_VAL                                                 't'
         47        SEND_VAR                                                 !3
         48        DO_ICALL                                         $36     
         49        ASSIGN                                                   !11, $36
   17    50        NEW                                              $38     'DateTime'
         51        INIT_FCALL                                               'date'
         52        SEND_VAL                                                 'Y-m-d'
         53        SEND_VAR                                                 !2
         54        DO_ICALL                                         $39     
         55        SEND_VAR_NO_REF_EX                                       $39
         56        DO_FCALL                                      0          
         57        ASSIGN                                                   !12, $38
   18    58        NEW                                              $42     'DateTime'
         59        INIT_FCALL                                               'date'
         60        SEND_VAL                                                 'Y-m-d'
         61        INIT_FCALL                                               'strtotime'
         62        CONCAT                                           ~43     !1, '+%2B1+day'
         63        SEND_VAL                                                 ~43
         64        DO_ICALL                                         $44     
         65        SEND_VAR                                                 $44
         66        DO_ICALL                                         $45     
         67        SEND_VAR_NO_REF_EX                                       $45
         68        DO_FCALL                                      0          
         69        ASSIGN                                                   !13, $42
   19    70        INIT_METHOD_CALL                                         !13, 'diff'
         71        SEND_VAR_EX                                              !12
         72        SEND_VAL_EX                                              <true>
         73        DO_FCALL                                      0  $48     
         74        ASSIGN                                                   !14, $48
   20    75        INIT_FCALL                                               'date'
         76        SEND_VAL                                                 't+'
         77        INIT_METHOD_CALL                                         !13, 'getTimestamp'
         78        DO_FCALL                                      0  $50     
         79        SEND_VAR                                                 $50
         80        DO_ICALL                                         $51     
         81        CAST                                          4  ~52     $51
         82        ASSIGN                                                   !11, ~52
   21    83        ROPE_INIT                                     4  ~55     !0
         84        ROPE_ADD                                      1  ~55     ~55, '+%3E%3E+'
         85        ROPE_ADD                                      2  ~55     ~55, !1
         86        ROPE_END                                      3  ~54     ~55, '+%3E%3E%3E%3E+'
         87        INIT_FCALL                                               'date'
         88        SEND_VAL                                                 'Y-m-d+'
         89        INIT_METHOD_CALL                                         !12, 'getTimestamp'
         90        DO_FCALL                                      0  $57     
         91        SEND_VAR                                                 $57
         92        DO_ICALL                                         $58     
         93        CONCAT                                           ~59     ~54, $58
         94        CONCAT                                           ~60     ~59, '+%3E%3E+'
         95        INIT_FCALL                                               'date'
         96        SEND_VAL                                                 'Y-m-d+'
         97        INIT_METHOD_CALL                                         !13, 'getTimestamp'
         98        DO_FCALL                                      0  $61     
         99        SEND_VAR                                                 $61
        100        DO_ICALL                                         $62     
        101        CONCAT                                           ~63     ~60, $62
        102        ECHO                                                     ~63
   23   103        INIT_FCALL                                               'round'
        104        FETCH_OBJ_R                                      ~64     !14, 'y'
        105        MUL                                              ~65     ~64, 12
        106        FETCH_OBJ_R                                      ~66     !14, 'm'
        107        ADD                                              ~67     ~65, ~66
        108        FETCH_OBJ_R                                      ~68     !14, 'd'
        109        DIV                                              ~69     ~68, !11
        110        ADD                                              ~70     ~67, ~69
        111        SEND_VAL                                                 ~70
        112        SEND_VAL                                                 6
        113        DO_ICALL                                         $71     
        114        ASSIGN                                                   !15, $71
   25   115        CONCAT                                           ~73     '+%3E%3E%3E+', !15
        116        CONCAT                                           ~74     ~73, '%0A'
        117        ECHO                                                     ~74
        118      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
173.97 ms | 1404 KiB | 19 Q