yii2中的格式化程序asDateTime

yii2中的格式化程序asDateTime,yii2,Yii2,如果我有这样一个元素数组: [PERKIRAAN_SELESAI] => 24/10/2016 09:38 然后我想在mysql中存储为datetime格式,即YYYY-MM-DD H:s, =>2016-10-2409:38 Yii2如何处理这个问题, 现在,在beforeSave()中,我使用以下命令: $this->perkiraan_selesai = Yii::$app->formatter->asDateTime(strtorime($this->P

如果我有这样一个元素数组:

 [PERKIRAAN_SELESAI] => 24/10/2016 09:38
然后我想在mysql中存储为datetime格式,即YYYY-MM-DD H:s, =>2016-10-2409:38

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

$this->perkiraan_selesai = Yii::$app->formatter->asDateTime(strtorime($this->PERKIRAAN_SELESAI), "php:Y-m-d H:s" );
但是,仍然不起作用。
请。

首先,我看到您的代码中有两个错误:

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

  • strotime
    必须是
    strotime
    ,但我认为这个打字错误不是在原始代码中,只是在这里发布的

至于你的问题,检查一下这个。似乎问题在于斜杠的处理(
/
)。我没有手动用
-
替换它,而是用原生类
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
的值与预期一致