3v4l.org

run code in 500+ 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
    8    32        DO_FCALL                                          0          
         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.5.0


preferences:
226.01 ms | 2221 KiB | 24 Q