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

时间:2013-11-19 19:59:47

标签: php arrays offset

我有一些我无法理解的问题。 我使用以下代码收到错误Undefined offset

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

$this->date是一个类似"2013-11-10"

的字符串

var_dump($dateArr)说,数组中有这些值,与调试器相同。

我不明白为什么我会收到这个错误。这只是一个“通知”,但它让我很生气。 有趣的是,日期仍保存到数据库中,这是正确的(如$newDate正确构建)。

- 编辑

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

2 个答案:

答案 0 :(得分:0)

假设实际设置了$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);

答案 1 :(得分:0)

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