【发布时间】:2017-08-03 22:14:09
【问题描述】:
我正在编辑我的控制器脚本以使其运行得更快,行数更少。我有一个完全可以正常工作的版本,但是修改后的版本一直出现这个错误,它指向这一行:
echo Datetime::createFromFormat('m-d-Y',$prodDate[3])->format('Y-m-d');
奇怪的是页面会显示日期,然后调用错误。所以回显会运行,但是它说错误在这一行......
错误行之前的行:
$prodName = explode("@", $product['name']);
$prodDate = explode(" ",$prodName[1]);
所以我拆分一个字符串来查找日期。字符串格式为:xxx @ yyy 日期。我正在分解它以找到'xxx',然后使用包含'yyy date'的分解数组的[1]索引来查找'date'
当我回显 $prodDate[3] 时,它成功检索到日期。然后,我想将此日期存储到我的 mysql 表中,以便我使用时
echo Datetime::createFromFormat('m-d-Y',$prodDate[3])->format('Y-m-d');
我只是不知道问题出在哪里...原始脚本(有效的脚本)看起来与此类似,并且完全可以正常工作
【问题讨论】:
-
检查
$prodDate[3]的输出,因为它似乎会导致错误。用字符串替换变量,它工作正常:echo Datetime::createFromFormat('m-d-Y', '12-23-2017')->format('Y-m-d'); -
如果它显示日期然后报告错误,则错误必须与 echo 位于不同的行。
-
如果
$prodName[1]包含yyy date,那么日期应该是$prodDate[1],而不是$prodDate[3]。 -
是的,它输出:“0017-08-27”但是它说错误就在那一行o.O
-
prodDate[1] 输出“yyy”中的“y” prodDate[3] 输出正确的实际日期