$time1 = strtotime(date("Y-m-d", time())); $time2 = strtotime(date("Y-m-d", time())); $time1 = $time1 + (7 * 24 * 60 * 60); $time2 = strtotime(date("Y-m-d", $time2) . " +1 week");
第二行和第三行显然在我的代码中做了不同的事情。那时我正在处理一个月以上的日期。这应该是那样的吗?为什么这样做呢?
答案 0 :(得分:3)
区别在于
$time1 = $time1 + (7 * 24 * 60 * 60);
增加7×24小时,而
$time2 = strtotime(date("Y-m-d", $time2) . " +1 week");
增加一周。
通常,当然,这些都是一回事,但你的个人资料说你住在新西兰,维基百科说新西兰在4月的第一个星期天从夏令时转为常规时间,这是昨天(或者,呃,两天前为你)。所以最近可能会出现这样的情况:一周实际上是7×24 + 1小时(因为4月1日凌晨2点到凌晨3点的时间发生了两次),而不是7×24小时。
同样地,在春天你会发现一周可以是7×24 - 1小时。
答案 1 :(得分:1)
他们应该在计算同样的事情,但第3行正在做简单的代数来计算整数值。第4行必须解析日期和+1 week
字符串并生成相同的值。
由于函数调用+解析字符串值并将其转换为正确的unix时间戳,因此使用strtotime会稍微慢一些。