计算从开始日期到结束日期的实际总日期

时间:2014-03-15 04:59:33

标签: php date

关于从开始日期结束日期计算实际日期,我有一些简单的问题。

计算内部将包括闰年,一个月中的一天。

实施例:
开始日期: 15-03-2014
截止日期: 11-06-2015

结果:453天

我读过一个与此非常相似的问题。但这不是我想要的。
How to calculate the difference between two dates using PHP?

4 个答案:

答案 0 :(得分:4)

实现此目标的最佳方法是使用 DateTime (以及 DateInterval )对象。将每个日期字符串转换为DateTime对象,并使用DateTime::diff()方法计算两者之间的天数:

$dt1 = new DateTime($date1);
$dt2 = new DateTime($date2);
$diff = $dt2->diff($dt1);
echo $diff->format("%a"); // => 453

答案 1 :(得分:0)

使用Jquery你可以获得实际的日子

var due = due_date_month + '/' + due_date_day + '/' + due_date_year;
var deliver = deliver_date_month + '/' + deliver_date_day + '/' + deliver_date_year;

var deliver_date = new Date(deliver);

var due_date = new Date(due);

if (due_date > deliver_date) {
var difference = Math.floor(due_date - deliver_date);

difference = parseInt(difference / 86400000);
alert(difference);

}                                                      

答案 2 :(得分:0)

您可以使用strtotime()将日期转换为unix时间, 减去日期,并将结果除以86400(一天中的秒数), 像这样:

$start = strtotime($date1);
$end = strtotime($date2);
$diff = $end-$start;
$days = ceil($diff/86400); //or floor depends what you need

p.s。:$ start和$ end必须采用美国格式

答案 3 :(得分:0)

DATEDIFF('ending date','Starting date');

    Ex. 
$q=mysql_query('select DATEDIFF('$end_date','$start_date')' AS total_days <from table name>');
    $result=mysql_fetch_array($q);

    echo $result['total_days'];