在PHP 5.6.14这样做:这是一个PHP日期错误?
$a = strtotime('2016-10-01');
$b = $a+29*24*3600;
$c = $a+30*24*3600;
die(date("d/m/Y",$b).' - '.date("d/m/Y",$c));
将返回30/10/2016 - 30/10/2016
,因为我希望$c
真奇怪是31/10/2016
而不是30/10/2016
。它是一个PHP的错误?
说明:我知道有几种方法可以执行日期操作,但我特别在此问。如果我将$a
月份更改为10以外的其他数字(例如8,9,11,12),它会给我预期的结果。
总是检查你的假设'var_dump($ a,$ b,$ c)'。你假设b和c有一定的价值,但你认为是错的。 – goat
这也是为什么'DateTime'是为PHP添加日期的高级方法 – Machavity
我认为这与夏令时有关 - 就好像你也用小时输出一样,你会得到'30/10/2016 00:00 - 30/10/2016 23:00',我们在10月30日(至少在我的国家)扣除一小时(因为DST)。 – Qirel