在yii2中格式化asDateTime

时间:2016-10-24 02:47:01

标签: yii2

如果我有这样的元素数组:

 [PERKIRAAN_SELESAI] => 24/10/2016 09:38

然后我想在mysql中存储日期时间格式,即YYYY-MM-DD H:s,  => 2016-10-24 09:38

Yii2如何处理这个问题, 现在,在beforeSave()中,我使用了这个:

$this->perkiraan_selesai = Yii::$app->formatter->asDateTime(strtorime($this->PERKIRAAN_SELESAI), "php:Y-m-d H:s" );

但是,仍然没有工作。 请。

1 个答案:

答案 0 :(得分:4)

首先,我在您的代码中看到2个错误:

  • 2016-10-24 09:38日期看似Y-m-d H:i格式,而不是Y-m-d H:s。检查PHP date函数文档以解释这些字母。

  • strtorime必须是strtotime,但我认为这个拼写错误不是原始代码,只是在帖子中。

关于您的问题,请检查此related question on SO。似乎问题在于处理斜杠(/)。我没有手动用-替换它,而是更好地找到了原生类DateTime的解决方案。

使用普通PHP:

$date = \DateTime::createFromFormat('d/m/Y H:i', '24/10/2016 09:38')->format('Y-m-d H:i');

使用Yii2格式化程序:

$date = Yii::$app->formatter->asDateTime(\DateTime::createFromFormat('d/m/Y H:i', '24/10/2016 09:38'), 'php:Y-m-d H:i');

只需将此日期替换为您的值。

$date的价值符合预期2016-10-24 09:38