我的职能是将公历日期转换为贾拉利日期(波斯文):
function toJalali ($date)
{
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);
return $fmt->format($date);
}当我称它为toJalali(time())时,它给了我完全约会的(1397-8-17 ه.ش ...)
如何从上述功能中获得特定的日期格式。?
我知道可以在构造函数中设置格式选项:
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, 'MM/dd/yyyy');但是当我想要其他的时间格式时呢?
就像只有year : (yyyy)或(EEEE/yyyy/MM)等,所以我必须为每种日期格式编写单独的函数。?
谢谢。
发布于 2018-11-09 06:58:42
要更改模式,可以使用以下setPattern方法:
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, 'MM/dd/yyyy');
$fmt->setPattern('EEEE/yyyy/MM');
echo $fmt->format(0);你的功能应该是这样的:
function toJalali ($date, $pattern = null)
{
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);
if ($pattern){
$fmt->setPattern($pattern);
}
return $fmt->format($date);
}https://stackoverflow.com/questions/53221032
复制相似问题