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;
Output for 8.1.28, 8.2.18, 8.3.6
Saturday, March 17, 2018 at 12:28:33 PM Iran Standard Time -> OK 2018/03/17 -> OK Saturday, Esfand 26, 1396 AP at 12:28:33 PM Iran Standard Time -> OK 1396/12/26 -> OK ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۳۳ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۳۳ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶/۱۲/۲۴ -> OK ۱۳۹۶/۱۲/۲۵ -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۷/۱۲/۲۷ -> NOT OK ۱۳۹۷/۱۲/۲۸ -> NOT OK ۱۳۹۷/۱۲/۲۹ -> NOT OK ۱۳۹۷/۰۱/۱ -> OK ۱۳۹۷/۰۱/۲ -> OK
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Saturday, March 17, 2018 at 12:28:33 PM Iran Standard Time -> OK 2018/03/17 -> OK Saturday, Esfand 26, 1396 AP at 12:28:33 PM Iran Standard Time -> OK 1396/12/26 -> OK ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۳۳ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۳۳ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶/۱۲/۲۴ -> OK ۱۳۹۶/۱۲/۲۵ -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۷/۱۲/۲۷ -> NOT OK ۱۳۹۷/۱۲/۲۸ -> NOT OK ۱۳۹۷/۱۲/۲۹ -> NOT OK ۱۳۹۷/۰۱/۱ -> OK ۱۳۹۷/۰۱/۲ -> OK
Output for 7.2.29 - 7.2.33, 7.3.16 - 7.3.31, 7.4.4 - 7.4.5, 7.4.7 - 7.4.32, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
Saturday, March 17, 2018 at 12:28:33 PM Iran Standard Time -> OK 2018/03/17 -> OK Saturday, Esfand 26, 1396 AP at 12:28:33 PM Iran Standard Time -> OK 1396/12/26 -> OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۳۳ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۳۳ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶/۱۲/۲۴ -> OK ۱۳۹۶/۱۲/۲۵ -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۷/۱۲/۲۷ -> NOT OK ۱۳۹۷/۱۲/۲۸ -> NOT OK ۱۳۹۷/۱۲/۲۹ -> NOT OK ۱۳۹۷/۰۱/۱ -> OK ۱۳۹۷/۰۱/۲ -> OK
Output for 8.0.13
Fatal error: Uncaught Error: Class "IntlDateFormatter" not found in /in/eg2U3:8 Stack trace: #0 /in/eg2U3(26): formatMyDate('en_US', NULL, 2018, 3, 17) #1 {main} thrown in /in/eg2U3 on line 8
Process exited with code 255.
Output for 7.3.32 - 7.3.33, 7.4.33
Fatal error: Uncaught Error: Class 'IntlDateFormatter' not found in /in/eg2U3:8 Stack trace: #0 /in/eg2U3(26): formatMyDate('en_US', NULL, 2018, 3, 17) #1 {main} thrown in /in/eg2U3 on line 8
Process exited with code 255.
Output for 7.4.6
Saturday, March 17, 2018 at 1:21:30 AM Iran Standard Time -> OK 2018/03/17 -> OK Saturday, Esfand 26, 1396 AP at 1:21:30 AM Iran Standard Time -> OK 1396/12/26 -> OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱:۲۱:۳۰ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱:۲۱:۳۰ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶/۱۲/۲۴ -> OK ۱۳۹۶/۱۲/۲۵ -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۷/۱۲/۲۷ -> NOT OK ۱۳۹۷/۱۲/۲۸ -> NOT OK ۱۳۹۷/۱۲/۲۹ -> NOT OK ۱۳۹۷/۰۱/۱ -> OK ۱۳۹۷/۰۱/۲ -> OK
Output for 5.6.0 - 5.6.25, 5.6.27 - 5.6.39, 7.0.0 - 7.0.9, 7.0.12 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.25, 7.3.0 - 7.3.12, 7.4.0
Saturday, March 17, 2018 at 12:28:15 PM Iran Standard Time -> OK 2018/03/17 -> OK Saturday, Esfand 26, 1396 AP at 12:28:15 PM Iran Standard Time -> OK 1396/12/26 -> OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۱۵ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۱۵ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶/۱۲/۲۴ -> OK ۱۳۹۶/۱۲/۲۵ -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۷/۱۲/۲۷ -> NOT OK ۱۳۹۷/۱۲/۲۸ -> NOT OK ۱۳۹۷/۱۲/۲۹ -> NOT OK ۱۳۹۷/۰۱/۱ -> OK ۱۳۹۷/۰۱/۲ -> OK
Output for 5.6.26, 5.6.40, 7.0.10 - 7.0.11
Saturday, March 17, 2018 at 12:28:16 PM Iran Standard Time -> OK 2018/03/17 -> OK Saturday, Esfand 26, 1396 AP at 12:28:16 PM Iran Standard Time -> OK 1396/12/26 -> OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۱۶ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ه‍.ش. ۱۳۹۶ اسفند ۲۶, شنبه، ساعت ۱۲:۲۸:۱۶ (وقت عادی ایران) -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۶/۱۲/۲۴ -> OK ۱۳۹۶/۱۲/۲۵ -> OK ۱۳۹۷/۱۲/۲۶ -> NOT OK ۱۳۹۷/۱۲/۲۷ -> NOT OK ۱۳۹۷/۱۲/۲۸ -> NOT OK ۱۳۹۷/۱۲/۲۹ -> NOT OK ۱۳۹۷/۰۱/۱ -> OK ۱۳۹۷/۰۱/۲ -> OK

preferences:
233.19 ms | 403 KiB | 284 Q