首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从我的IntlDateFormatter()函数中获得特定的结果?

如何从我的IntlDateFormatter()函数中获得特定的结果?
EN

Stack Overflow用户
提问于 2018-11-09 06:47:23
回答 1查看 125关注 0票数 0

我的职能是将公历日期转换为贾拉利日期(波斯文):

代码语言:javascript
复制
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 ه.ش ...)

如何从上述功能中获得特定的日期格式。?

我知道可以在构造函数中设置格式选项:

代码语言:javascript
复制
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, 'MM/dd/yyyy');

但是当我想要其他的时间格式时呢?

就像只有year : (yyyy)(EEEE/yyyy/MM)等,所以我必须为每种日期格式编写单独的函数。?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 06:58:42

要更改模式,可以使用以下setPattern方法:

代码语言:javascript
复制
$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);

你的功能应该是这样的:

代码语言:javascript
复制
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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53221032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档