如何在PHP中将默认日期设置为波斯语日期?
假设我使用echo
函数date('Y-m-d')
,那么它将显示2018-03-05,但我想要1396-12-14这个波斯日期。
如何在PHP中将默认日期设置为波斯语日期?
假设我使用echo
函数date('Y-m-d')
,那么它将显示2018-03-05,但我想要1396-12-14这个波斯日期。
<?php
// date_default_timezone_set('Asia/Tehran');
$now = new DateTime();
$formatter = new IntlDateFormatter(
"fa_IR@calendar=persian",
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'Asia/Tehran',
IntlDateFormatter::TRADITIONAL,
"yyyy-MM-dd");
// It is now: 1396-12-14
echo 'It is now: ' . convert_to_number($formatter->format($now)) ."<br />";
// It is now: ۱۳۹۶-۱۲-۱۴
echo 'It is now: ' . $formatter->format($now) ."<br />";
// convert to number
function convert_to_number($string) {
$persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
$arabic = ['٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١','٠'];
$num = range(0, 9);
$convertedPersianNums = str_replace($persian, $num, $string);
$englishNumbersOnly = str_replace($arabic, $num, $convertedPersianNums);
return $englishNumbersOnly;
}
en_US
而不是fa_IR
,那么您就不需要使用convert_to_number
函数。 - Nabi K.A.Z.<?php
// date_default_timezone_set('Asia/Tehran');
$now = new DateTime();
$formatter = new IntlDateFormatter(
"en_US@calendar=persian",
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'Asia/Tehran',
IntlDateFormatter::TRADITIONAL,
"yyyy-MMMM-dd");
// It is now: 1401-Bahman-20
echo 'It is now: ' . $formatter->format($now) ."<br />";
?>
https://unicode-org.github.io/icu/userguide/format_parse/datetime/#date-field-symbol-table