DateTime :: createFromFormat生成布尔值?

时间:2012-06-18 15:52:59

标签: php datetime date

在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++) {

1 个答案:

答案 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

如果有疑问,请发布更完整的相关代码副本和代码失败的数组。