3v4l.org

run code in 300+ PHP versions simultaneously
<?php $date1 = new DateTime('2015-03-31'); $date2 = new DateTime('2015-03-01'); $interval = $date1->diff($date2); $diff = $interval->format('%y-%m-%d'); echo $interval->m; echo "\n"; echo $diff; echo "\n"; $date1 = "2015-03-31"; $date2 = "2015-03-01"; $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); printf("%d years, %d months, %d days\n", $years, $months, $days); ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3mXh6
function name:  (null)
number of ops:  71
compiled vars:  !0 = $date1, !1 = $date2, !2 = $interval, !3 = $diff, !4 = $years, !5 = $months, !6 = $days
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   NEW                                              $7      'DateTime'
          1        SEND_VAL_EX                                              '2015-03-31'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $7
    4     4        NEW                                              $10     'DateTime'
          5        SEND_VAL_EX                                              '2015-03-01'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !1, $10
    5     8        INIT_METHOD_CALL                                         !0, 'diff'
          9        SEND_VAR_EX                                              !1
         10        DO_FCALL                                      0  $13     
         11        ASSIGN                                                   !2, $13
    6    12        INIT_METHOD_CALL                                         !2, 'format'
         13        SEND_VAL_EX                                              '%25y-%25m-%25d'
         14        DO_FCALL                                      0  $15     
         15        ASSIGN                                                   !3, $15
    7    16        FETCH_OBJ_R                                      ~17     !2, 'm'
         17        ECHO                                                     ~17
    8    18        ECHO                                                     '%0A'
    9    19        ECHO                                                     !3
   10    20        ECHO                                                     '%0A'
   13    21        ASSIGN                                                   !0, '2015-03-31'
         22        ASSIGN                                                   !1, '2015-03-01'
   14    23        INIT_FCALL                                               'abs'
         24        INIT_FCALL                                               'strtotime'
         25        SEND_VAR                                                 !1
         26        DO_ICALL                                         $20     
         27        INIT_FCALL                                               'strtotime'
         28        SEND_VAR                                                 !0
         29        DO_ICALL                                         $21     
         30        SUB                                              ~22     $20, $21
         31        SEND_VAL                                                 ~22
         32        DO_ICALL                                         $23     
         33        ASSIGN                                                   !3, $23
   15    34        INIT_FCALL                                               'floor'
         35        DIV                                              ~25     !3, 31536000
         36        SEND_VAL                                                 ~25
         37        DO_ICALL                                         $26     
         38        ASSIGN                                                   !4, $26
   16    39        INIT_FCALL                                               'floor'
         40        MUL                                              ~28     !4, 365
         41        MUL                                              ~29     ~28, 60
         42        MUL                                              ~30     ~29, 60
         43        MUL                                              ~31     ~30, 24
         44        SUB                                              ~32     !3, ~31
         45        DIV                                              ~33     ~32, 2592000
         46        SEND_VAL                                                 ~33
         47        DO_ICALL                                         $34     
         48        ASSIGN                                                   !5, $34
   17    49        INIT_FCALL                                               'floor'
         50        MUL                                              ~36     !4, 365
         51        MUL                                              ~37     ~36, 60
         52        MUL                                              ~38     ~37, 60
         53        MUL                                              ~39     ~38, 24
         54        SUB                                              ~40     !3, ~39
         55        MUL                                              ~41     !5, 30
         56        MUL                                              ~42     ~41, 60
         57        MUL                                              ~43     ~42, 60
         58        MUL                                              ~44     ~43, 24
         59        SUB                                              ~45     ~40, ~44
         60        DIV                                              ~46     ~45, 86400
         61        SEND_VAL                                                 ~46
         62        DO_ICALL                                         $47     
         63        ASSIGN                                                   !6, $47
   18    64        INIT_FCALL                                               'printf'
         65        SEND_VAL                                                 '%25d+years%2C+%25d+months%2C+%25d+days%0A'
         66        SEND_VAR                                                 !4
         67        SEND_VAR                                                 !5
         68        SEND_VAR                                                 !6
         69        DO_ICALL                                                 
   19    70      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.21 ms | 1400 KiB | 21 Q