我正在尝试编写一个可以计算两个日期之间的天数的函数。目前,我有以下,但它给我一些意想不到的结果:PHP - 计算两个日期之间的天数
function dayCount($from, $to) {
$first_date = strtotime($from);
$second_date = strtotime($to);
$offset = $second_date-$first_date;
return floor($offset/60/60/24);
}
print dayCount($s, $e).' Days';
一对夫妇的正确例子:
$s = '18-03-2016';
$e = '25-03-2016';
输出:7 Days
- 正确
$s = '03-02-2016';
$e = '06-02-2016';
输出: 3 Days
- 正确
$s = '06-04-2016';
$e = '27-04-2016';
输出:21 Days
- 正确
但是,当我有一个跨越2个月之间的日期有时它是正确的,有时它显示了一天的时间:
$s = '25-03-2016';
$e = '01-04-2016';
输出:6 Days
- 应该是7天
$s = '23-02-2016';
$e = '01-03-2016';
个
输出:7 Days
- 正确
为什么不使用'date_diff' PHP函数? – Thamilan
重复的http://stackoverflow.com/questions/33732686/find-amount-of-days-between-2-dates-in-php/33732864#33732864 –
这不是“2个月之间的交叉”,这是造成问题。问题是'27-03-2016'之前或之后以及'28-03-2016'之后或之后的时间间隔。 2016年3月27日是夏令时(在欧盟)的开始。在计算两个时间戳之间的差值时,从具有不同时区偏移量的字符串中...在观察DST的时区中,2016年3月27日只有23小时。 – spencer7593