【问题标题】:Why Yii2 formatter does not work correctly?为什么 Yii2 格式化程序不能正常工作?
【发布时间】:2018-11-21 08:11:40
【问题描述】:

想知道为什么第二行会报错:

Yii::$app->formatter->dateFormat='yyyy-MM-dd';
echo Yii::$app->formatter->format('14/01/2017','date');

为什么在这种情况下没有错误?

Yii::$app->formatter->dateFormat='yyyy-MM-dd';
echo Yii::$app->formatter->format('10/07/2015', 'date');

【问题讨论】:

  • 你安装了 php intl 扩展吗?

标签: yii2 internationalization formatter


【解决方案1】:

您的日期格式不明确。您可能正在使用DD/MM/YYYY 格式,但PHP 将其解释为MM/DD/YYYY。没有第 14 个月,所以 14/01/2017 的日期不正确。 10/07/2015 不会抛出任何错误,但它可能被错误地解释为 2015-10-07 而不是 2015-07-10

您需要在将日期传递给格式化程序之前对其进行解析:

Yii::$app->formatter->dateFormat = 'yyyy-MM-dd';
$date = DateTime::createFromFormat('d/m/Y', '14/01/2017');
echo Yii::$app->formatter->format($date, 'date');

【讨论】:

  • 非常感谢,我去试试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 2020-09-19
  • 1970-01-01
  • 2016-09-07
相关资源
最近更新 更多