与date_format一起使用的Interperet英文日期字符串

时间:2017-07-26 07:52:17

标签: php smarty

在smarty中,我有一个格式如下的日期字符串:DD / MM / YYYY

当我尝试使用date_format时,日期错误。

如何让它理解初始字符串的格式是什么?

1 个答案:

答案 0 :(得分:1)

date_format Smarty变量修饰符的文档解释了它对格式化值的期望:

  

这会将日期和时间格式化为给定的strftime()格式。日期可以作为unix timestampsDateTime objects,mysql时间戳或由月份日组成的任何字符串传递给Smarty,可由php strtotime()解析。

您使用的strtotime())的日期格式为MM/DD/YYYY not recognized,并且有充分的理由:对于一年中超过三分之一的日期,这个格式不能与MM/DD/YYYY区分开来。 PHP开发人员必须选择识别这两种格式中的哪一种,并选择/(可能因为它具有更高的覆盖率)。

问题的可能解决方案是首先使用replace修饰符,将-更改为.DD-MM-YYYYDD.MM.YYYYstrtotime()格式均有效且由{$date|date_format:'%e %B %Y'} 识别,并且不会与其他格式冲突。

如果您当前的代码如下:

{$date|replace:'/':'.'|date_format:'%e %B %Y'}

将其更改为:

{{1}}