未定义偏移量,但存在数组项



我有一个无法理解的问题。我得到错误Undefined offset与此代码:

$date = $this->date;
$dateArr = explode('-', $date);
$newDate = $dateArr[2] . '.' . $dateArr[1] . '.' . $dateArr[0];

$this->date是类似于"2013-11-10" 的字符串

var_dump($dateArr)表示,数组中存在这些值,与Debugger相同。

我不明白为什么我会犯这个错误。这只是一个"通知",但它让我很生气。有趣的是,日期无论如何都会保存到数据库中,而且这是正确的(就像$newDate是正确构建的一样)。

--编辑

通过这样做,我想将日期从yyyy-mm-dd转换为dd-mm-yyyy,然后将其转换为unix时间戳。

如果你想得到"10.11.2013"作为结果-你会得到它(你的代码工作正常),但只有在设置了$this->date的情况下,这真的是像"2013-11-10"一样的字符串(我相信不是)。在所有其他情况下,当您的explode将失败并返回不同的结果(没有3个元素的数组)时,您将获得偏移。

假设实际设置了$this->date,则无需进行多重操作,只需使用strtotime()获取时间戳,然后使用date()进行格式化即可。

// To change formatting to 10.11.2013
$newDate = date("d.m.Y", strtotime($this->date));
// To turn date into unix timestamp 1384038000
$newDate = strtotime($this->date);

最新更新