【发布时间】:2012-06-07 14:05:33
【问题描述】:
收集两个日期之间的天数,例如 2012 年 2 月 11 日 之间 2012 年 2 月 12 日
结果是天数=1天
【问题讨论】:
-
您已标记此 AJAX 和 PHP。您需要知道如何在 Javascript 或 PHP 中执行此操作吗?
收集两个日期之间的天数,例如 2012 年 2 月 11 日 之间 2012 年 2 月 12 日
结果是天数=1天
【问题讨论】:
您可以使用 strtotime() 函数将日期转换为时间戳:
$date1 = strtotime("02/11/2012");
$date2 = strtotime("02/12/2012");
$difference = $date1 - $date2;
然后你有一个新的时间戳,以秒为单位的差异,所以你可以使用 date() 函数将其转换为天:
$days = date("d", $difference);
【讨论】:
PHP >= 5.3 你可以使用DateTime::Diff:
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
【讨论】:
DateTime 对象的,我觉得这比基于每天86400 秒的计算更可靠。 DateTime 对象(以及它在 PHP 5.3 中的改进)更加稳定;这就是我的意思。
试试这个
function dateDiff ($d1, $d2) {
return round(abs(strtotime($d1)-strtotime($d2))/86400);
}
该函数使用 PHP ABS() 绝对值始终返回一个正数作为两个日期之间的天数。
【讨论】:
echo (strtotime('02/12/2012') - strtotime('02/11/2012')) / (24*60*60);
这一行将两个日期转换为 unix 时间戳,减去它们,然后除以一天中的秒数。
【讨论】: