如果我有这样的元素数组:
[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" );
但是,仍然没有工作。 请。
答案 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
。