0

在 for 循环中,我使用以下代码从一种日期格式转换为另一种日期格式:

339: $newdate = date_create_from_format('j-M g:i A', $moneyline[$i][date]);
340: echo date_format($newdate, 'Y-m-d');

根据var_dump$moneyline[$i][date],我的变量似乎是一个字符串: 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++) {
4

1 回答 1

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

如有疑问,请发布所涉及代码的更完整副本以及代码失败的数组。

于 2012-06-18T16:36:55.253 回答