我使用DateTime和差异来计算两个日期之间的天数的区别如下:日期时间差异返回怪异输出
$data_inceput = '2013-10-01';
$data_sfarsit = '2013-10-31';
$date1 = new DateTime($data_inceput);
$date2 = new DateTime($data_sfarsit);
$nr_zile = $date2->diff($date1)->format("%a");
$nr_zile
出来作为6015的一些原因。
如果我`var_dump($date2->diff($date1));
我得到:
object(DateInterval)#6 (8) {
["y"] => int(0)
["m"] => int(0)
["d"] => int(30)
["h"] => int(0)
["i"] => int(0)
["s"] => int(0)
["invert"] => int(1)
["days"] => int(6015)
任何想法,为什么它的行为这样?我也尝试将UTC的时区设置为每个日期,并获得相同的结果。
编辑:我在生产服务器上测试过,它工作得很好,唯一的问题是在本地的apache服务器上,但php设置基本上是两个相同的。
的PHP版本您使用的?我在PHP 5.3.13上测试了这个代码,并且没有问题($ nr_zile出来的时候是30) –
列举检查。它也适用于我在远程服务器上,但给我在我的本地apache服务器上面的结果...甚至是PHP设置基本相同 – Bogdan
您是否在创建DateTime实例之前设置UTC时区,使用'date_default_timezone_set '?如果没有,请做...所有相同的结果:'diff'结果相当奇怪,但是您是否愿意使用'date_default_timezone_get'来说明您所在的时区? –