在for循环中,我使用以下代码从一种日期格式转换为另一种日期格式:
339: $newdate = date_create_from_format('j-M g:i A', $moneyline[$i][date]);
340: echo date_format($newdate, 'Y-m-d');
根据$ moneyline [$ i] [date]的var_dump
,我的变量似乎是一个字符串:
string(15) "18-Jun 7:05 PM"
但是当我使用变量作为$newdate
构造函数的参数时,$newdate
根据vardump创建一个布尔值:
bool(false)
这意味着当我尝试执行第340行时,出现以下错误:
Warning: date_format() expects parameter 1 to be DateTime, boolean given in /home/andrewmin/andrewmin.com/share/scraping/betting_scraping.php on line 340
但是,如果我将第339行更改为:
339: $newdate = date_create_from_format('j-M g:i A', '18-Jun 7:05 PM');
它完美打印。任何人都有任何想法?
编辑:对不起,这不是一个foreach,它是一个for:
for ($i = 2; $i < $array_length; $i++) {
答案 0 :(得分:0)
当我使用此代码测试时:
$moneyline = array(
13 => array(
'date' => "18-Jun 7:05 PM"
)
);
$i = 13;
$newdate = date_create_from_format('j-M g:i A', $moneyline[$i][date]);
echo date_format($newdate, 'Y-m-d');
我得到了这个结果:
**Notice:** Use of undefined constant date - assumed 'date' in J:\www\test\datetime.php on line 89
2012-06-18
可以通过正确引用'date'
数组索引来解决通知。
我的猜测:您的$moneyline
数组包含的字符串不符合您提供的日期格式(例如空字符串)。在这种情况下,date_create_from_format
将失败并返回false
。
如果有疑问,请发布更完整的相关代码副本和代码失败的数组。