我有一个无法理解的问题。我得到错误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);