如何在 PHP 中将默认日期设置为波斯日期?
Posted
技术标签:
【中文标题】如何在 PHP 中将默认日期设置为波斯日期?【英文标题】:How to set default date to Persian date in PHP? 【发布时间】:2018-08-13 03:08:32 【问题描述】:
说,如果我回显这个函数 date('Ym-d') 那么它将显示 2018-03-05 但我想要 1396-12-14波斯日期。请帮忙
【问题讨论】:
如果可以按时区完成,请提出建议。 试试这个 php 类:phpclasses.org/package/… 这可能对您有帮助吗? codeproject.com/articles/28380/persian-calendar-in-php 【参考方案1】:请查看: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;
【讨论】:
感谢大家,但这无济于事。我想要的是,如果我回显 date('Y-m-d') 那么它应该返回 1396-12-15 而不是 2018-03-06。 有没有更好的方法将数字转换成英文? 使用“en_US@calendar=persian”,获取英文编号。 如果使用en_US
而不是fa_IR
那么你不需要使用convert_to_number
函数。
这个函数只是转换日期,它不返回时间!,我想要日期和时间 "Y-m-d h:i"以上是关于如何在 PHP 中将默认日期设置为波斯日期?的主要内容,如果未能解决你的问题,请参考以下文章