3v4l.org

run code in 300+ PHP versions simultaneously
<?php function formatMyDate($locale, $pattern, $year, $month, $day) { $timezone = new \DateTimeZone('Asia/Tehran'); $dateTime = new \DateTime('now', $timezone); $dateTime->setDate($year, $month, $day); $timeStamp = $dateTime->getTimestamp(); $dateFormatter = new \IntlDateFormatter( $locale, \IntlDateFormatter::FULL, \IntlDateFormatter::FULL, $timezone, \IntlDateFormatter::TRADITIONAL, $pattern); return $dateFormatter->format($timeStamp); } $en = 'en_US'; $persianEn = 'en_US@calendar=persian'; $persianFa = 'fa_IR@calendar=persian'; $persian = 'fa_IR'; $pattern1 = null; $pattern2 = 'Y/MM/d'; print(formatMyDate($en, $pattern1, 2018, 3, 17)) . ' -> OK'.PHP_EOL; print(formatMyDate($en, $pattern2, 2018, 3, 17)) . ' -> OK'.PHP_EOL; print(formatMyDate($persianEn, $pattern1, 2018, 3, 17)) . ' -> OK'.PHP_EOL; print(formatMyDate($persianEn, $pattern2, 2018, 3, 17)) . ' -> OK'.PHP_EOL; print(formatMyDate($persian, $pattern1, 2018, 3, 17)) . ' -> OK'.PHP_EOL; print(formatMyDate($persian, $pattern2, 2018, 3, 17)) . ' -> NOT OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern1, 2018, 3, 17)) . ' -> OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 17)) . ' -> NOT OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 15)) . ' -> OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 16)) . ' -> OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 17)) . ' -> NOT OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 18)) . ' -> NOT OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 19)) . ' -> NOT OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 20)) . ' -> NOT OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 21)) . ' -> OK'.PHP_EOL; print(formatMyDate($persianFa, $pattern2, 2018, 3, 22)) . ' -> OK'.PHP_EOL;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eg2U3
function name:  (null)
number of ops:  167
compiled vars:  !0 = $en, !1 = $persianEn, !2 = $persianFa, !3 = $persian, !4 = $pattern1, !5 = $pattern2
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   18     0  E >   ASSIGN                                                   !0, 'en_US'
   19     1        ASSIGN                                                   !1, 'en_US%40calendar%3Dpersian'
   20     2        ASSIGN                                                   !2, 'fa_IR%40calendar%3Dpersian'
   21     3        ASSIGN                                                   !3, 'fa_IR'
   23     4        ASSIGN                                                   !4, null
   24     5        ASSIGN                                                   !5, 'Y%2FMM%2Fd'
   26     6        INIT_FCALL                                               'formatmydate'
          7        SEND_VAR                                                 !0
          8        SEND_VAR                                                 !4
          9        SEND_VAL                                                 2018
         10        SEND_VAL                                                 3
         11        SEND_VAL                                                 17
         12        DO_FCALL                                      0  $12     
         13        CONCAT                                           ~13     $12, '+-%3E+OK'
         14        CONCAT                                           ~14     ~13, '%0A'
         15        ECHO                                                     ~14
   27    16        INIT_FCALL                                               'formatmydate'
         17        SEND_VAR                                                 !0
         18        SEND_VAR                                                 !5
         19        SEND_VAL                                                 2018
         20        SEND_VAL                                                 3
         21        SEND_VAL                                                 17
         22        DO_FCALL                                      0  $15     
         23        CONCAT                                           ~16     $15, '+-%3E+OK'
         24        CONCAT                                           ~17     ~16, '%0A'
         25        ECHO                                                     ~17
   29    26        INIT_FCALL                                               'formatmydate'
         27        SEND_VAR                                                 !1
         28        SEND_VAR                                                 !4
         29        SEND_VAL                                                 2018
         30        SEND_VAL                                                 3
         31        SEND_VAL                                                 17
         32        DO_FCALL                                      0  $18     
         33        CONCAT                                           ~19     $18, '+-%3E+OK'
         34        CONCAT                                           ~20     ~19, '%0A'
         35        ECHO                                                     ~20
   30    36        INIT_FCALL                                               'formatmydate'
         37        SEND_VAR                                                 !1
         38        SEND_VAR                                                 !5
         39        SEND_VAL                                                 2018
         40        SEND_VAL                                                 3
         41        SEND_VAL                                                 17
         42        DO_FCALL                                      0  $21     
         43        CONCAT                                           ~22     $21, '+-%3E+OK'
         44        CONCAT                                           ~23     ~22, '%0A'
         45        ECHO                                                     ~23
   33    46        INIT_FCALL                                               'formatmydate'
         47        SEND_VAR                                                 !3
         48        SEND_VAR                                                 !4
         49        SEND_VAL                                                 2018
         50        SEND_VAL                                                 3
         51        SEND_VAL                                                 17
         52        DO_FCALL                                      0  $24     
         53        CONCAT                                           ~25     $24, '+-%3E+OK'
         54        CONCAT                                           ~26     ~25, '%0A'
         55        ECHO                                                     ~26
   34    56        INIT_FCALL                                               'formatmydate'
         57        SEND_VAR                                                 !3
         58        SEND_VAR                                                 !5
         59        SEND_VAL                                                 2018
         60        SEND_VAL                                                 3
         61        SEND_VAL                                                 17
         62        DO_FCALL                                      0  $27     
         63        CONCAT                                           ~28     $27, '+-%3E+NOT+OK'
         64        CONCAT                                           ~29     ~28, '%0A'
         65        ECHO                                                     ~29
   36    66        INIT_FCALL                                               'formatmydate'
         67        SEND_VAR                                                 !2
         68        SEND_VAR                                                 !4
         69        SEND_VAL                                                 2018
         70        SEND_VAL                                                 3
         71        SEND_VAL                                                 17
         72        DO_FCALL                                      0  $30     
         73        CONCAT                                           ~31     $30, '+-%3E+OK'
         74        CONCAT                                           ~32     ~31, '%0A'
         75        ECHO                                                     ~32
   37    76        INIT_FCALL                                               'formatmydate'
         77        SEND_VAR                                                 !2
         78        SEND_VAR                                                 !5
         79        SEND_VAL                                                 2018
         80        SEND_VAL                                                 3
         81        SEND_VAL                                                 17
         82        DO_FCALL                                      0  $33     
         83        CONCAT                                           ~34     $33, '+-%3E+NOT+OK'
         84        CONCAT                                           ~35     ~34, '%0A'
         85        ECHO                                                     ~35
   39    86        INIT_FCALL                                               'formatmydate'
         87        SEND_VAR                                                 !2
         88        SEND_VAR                                                 !5
         89        SEND_VAL                                                 2018
         90        SEND_VAL                                                 3
         91        SEND_VAL                                                 15
         92        DO_FCALL                                      0  $36     
         93        CONCAT                                           ~37     $36, '+-%3E+OK'
         94        CONCAT                                           ~38     ~37, '%0A'
         95        ECHO                                                     ~38
   40    96        INIT_FCALL                                               'formatmydate'
         97        SEND_VAR                                                 !2
         98        SEND_VAR                                                 !5
         99        SEND_VAL                                                 2018
        100        SEND_VAL                                                 3
        101        SEND_VAL                                                 16
        102        DO_FCALL                                      0  $39     
        103        CONCAT                                           ~40     $39, '+-%3E+OK'
        104        CONCAT                                           ~41     ~40, '%0A'
        105        ECHO                                                     ~41
   41   106        INIT_FCALL                                               'formatmydate'
        107        SEND_VAR                                                 !2
        108        SEND_VAR                                                 !5
        109        SEND_VAL                                                 2018
        110        SEND_VAL                                                 3
        111        SEND_VAL                                                 17
        112        DO_FCALL                                      0  $42     
        113        CONCAT                                           ~43     $42, '+-%3E+NOT+OK'
        114        CONCAT                                           ~44     ~43, '%0A'
        115        ECHO                                                     ~44
   42   116        INIT_FCALL                                               'formatmydate'
        117        SEND_VAR                                                 !2
        118        SEND_VAR                                                 !5
        119        SEND_VAL                                                 2018
        120        SEND_VAL                                                 3
        121        SEND_VAL                                                 18
        122        DO_FCALL                                      0  $45     
        123        CONCAT                                           ~46     $45, '+-%3E+NOT+OK'
        124        CONCAT                                           ~47     ~46, '%0A'
        125        ECHO                                                     ~47
   43   126        INIT_FCALL                                               'formatmydate'
        127        SEND_VAR                                                 !2
        128        SEND_VAR                                                 !5
        129        SEND_VAL                                                 2018
        130        SEND_VAL                                                 3
        131        SEND_VAL                                                 19
        132        DO_FCALL                                      0  $48     
        133        CONCAT                                           ~49     $48, '+-%3E+NOT+OK'
        134        CONCAT                                           ~50     ~49, '%0A'
        135        ECHO                                                     ~50
   44   136        INIT_FCALL                                               'formatmydate'
        137        SEND_VAR                                                 !2
        138        SEND_VAR                                                 !5
        139        SEND_VAL                                                 2018
        140        SEND_VAL                                                 3
        141        SEND_VAL                                                 20
        142        DO_FCALL                                      0  $51     
        143        CONCAT                                           ~52     $51, '+-%3E+NOT+OK'
        144        CONCAT                                           ~53     ~52, '%0A'
        145        ECHO                                                     ~53
   45   146        INIT_FCALL                                               'formatmydate'
        147        SEND_VAR                                                 !2
        148        SEND_VAR                                                 !5
        149        SEND_VAL                                                 2018
        150        SEND_VAL                                                 3
        151        SEND_VAL                                                 21
        152        DO_FCALL                                      0  $54     
        153        CONCAT                                           ~55     $54, '+-%3E+OK'
        154        CONCAT                                           ~56     ~55, '%0A'
        155        ECHO                                                     ~56
   46   156        INIT_FCALL                                               'formatmydate'
        157        SEND_VAR                                                 !2
        158        SEND_VAR                                                 !5
        159        SEND_VAL                                                 2018
        160        SEND_VAL                                                 3
        161        SEND_VAL                                                 22
        162        DO_FCALL                                      0  $57     
        163        CONCAT                                           ~58     $57, '+-%3E+OK'
        164        CONCAT                                           ~59     ~58, '%0A'
        165        ECHO                                                     ~59
   47   166      > RETURN                                                   1

Function formatmydate:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eg2U3
function name:  formatMyDate
number of ops:  39
compiled vars:  !0 = $locale, !1 = $pattern, !2 = $year, !3 = $month, !4 = $day, !5 = $timezone, !6 = $dateTime, !7 = $timeStamp, !8 = $dateFormatter
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
          4        RECV                                             !4      
    4     5        NEW                                              $9      'DateTimeZone'
          6        SEND_VAL_EX                                              'Asia%2FTehran'
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !5, $9
    5     9        NEW                                              $12     'DateTime'
         10        SEND_VAL_EX                                              'now'
         11        SEND_VAR_EX                                              !5
         12        DO_FCALL                                      0          
         13        ASSIGN                                                   !6, $12
    6    14        INIT_METHOD_CALL                                         !6, 'setDate'
         15        SEND_VAR_EX                                              !2
         16        SEND_VAR_EX                                              !3
         17        SEND_VAR_EX                                              !4
         18        DO_FCALL                                      0          
    7    19        INIT_METHOD_CALL                                         !6, 'getTimestamp'
         20        DO_FCALL                                      0  $16     
         21        ASSIGN                                                   !7, $16
    8    22        NEW                                              $18     'IntlDateFormatter'
    9    23        SEND_VAR_EX                                              !0
   10    24        FETCH_CLASS_CONSTANT                             ~19     'IntlDateFormatter', 'FULL'
         25        SEND_VAL_EX                                              ~19
   11    26        FETCH_CLASS_CONSTANT                             ~20     'IntlDateFormatter', 'FULL'
         27        SEND_VAL_EX                                              ~20
    9    28        SEND_VAR_EX                                              !5
   13    29        FETCH_CLASS_CONSTANT                             ~21     'IntlDateFormatter', 'TRADITIONAL'
         30        SEND_VAL_EX                                              ~21
    9    31        SEND_VAR_EX                                              !1
         32        DO_FCALL                                      0          
    8    33        ASSIGN                                                   !8, $18
   15    34        INIT_METHOD_CALL                                         !8, 'format'
         35        SEND_VAR_EX                                              !7
         36        DO_FCALL                                      0  $24     
         37      > RETURN                                                   $24
   16    38*     > RETURN                                                   null

End of function formatmydate

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
163.98 ms | 962 KiB | 30 Q