为什么 PHP 在计算没有指定时区的时间戳时,在某些日期分配不同的时区?
Why is PHP assigning different timezones on certain dates when calculating timestamps without specified timezones?
当我想计算天数差时(以date1和date2为例):
$date1 = '2019-03-27';
$date2 = '2019-04-01';
echo((strtotime($date2) - strtotime($date1)) / 86400);
结果为:
2
但是做同样的事情:
$date1 = '2019-03-27';
$date2 = '2019-04-01';
echo((strtotime($date2) - strtotime($date1)) / 86400);
Returns:
4.9583333333333
这可以通过以下方式解决:date_default_timezone_set('UTC');
。
但为什么 PHP 默认情况下某些日期不使用相同的时区?
在您所在的时区 3 月底的某个时间,冬令时变为夏令时,所以其中一天只有 23 小时,所以它不能完全除以 86400(24 小时)。
当我想计算天数差时(以date1和date2为例):
$date1 = '2019-03-27';
$date2 = '2019-04-01';
echo((strtotime($date2) - strtotime($date1)) / 86400);
结果为:
2
但是做同样的事情:
$date1 = '2019-03-27';
$date2 = '2019-04-01';
echo((strtotime($date2) - strtotime($date1)) / 86400);
Returns:
4.9583333333333
这可以通过以下方式解决:date_default_timezone_set('UTC');
。
但为什么 PHP 默认情况下某些日期不使用相同的时区?
在您所在的时区 3 月底的某个时间,冬令时变为夏令时,所以其中一天只有 23 小时,所以它不能完全除以 86400(24 小时)。