如何在PHP中将默认日期设置为波斯日期?

ash*_*dhi 4 php timezone datepicker jquerydatetimepicker persian-calendar

如何在PHP中将默认日期设置为波斯日期?

我说,如果我赞同这个功能日期(“YM-d”),那么它会显示2018年3月5日,但我想1396年12月14日波斯日期。请帮忙

B.K*_*man 7

请检查:http : //php.net/manual/en/intldateformatter.create.php

<?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;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果使用 `en_US` 而不是 `fa_IR` 那么你不需要使用 `convert_to_number` 函数。 (3认同)
  • 使用“en_US@calendar=persian”来获取英文编号。 (2认同)