今天PHP的一些奇怪行为:
$ds = array('2011-10-28', '2011-10-29', '2011-10-30', '2011-10-31','2011-11-01');
for($i=0; $i<count($ds); $i++) {
print_r($ds[$i].' '.strtotime($ds[$i])."\n");
if ($i < count($ds)-1) {
print_r(abs(strtotime($ds[$i+1]) - strtotime($ds[$i]))."\n");
}
}
输出:
2011-10-28 1319756400
86400
2011-10-29 1319842800
86400
2011-10-30 1319929200
90000
2011-10-31 1320019200
86400
2011-11-01 1320105600
任何人都可以在30日到31日之间解释异常的90万吗?
答案 0 :(得分:5)
90000秒是25小时 - 每天25小时只能意味着一件事......时钟在夏令时结束时被放回。
当然在英国(我不知道其他地方)发生在星期天早上,结果是30日是25小时的一天。
答案 1 :(得分:2)
由于夏令时的变化,这似乎是一个额外的小时:
90000 = 25 * 60 * 60
答案 2 :(得分:1)
为了正确转换,您应该在日期中添加字符串“+00”(UTC时区) 例如strtotime(“2011-10-30 +00”);