收集两个日期之间的天数[重复]

Posted

技术标签:

【中文标题】收集两个日期之间的天数[重复]【英文标题】:Collect the number of days between two dates [duplicate] 【发布时间】:2012-06-07 14:05:33 【问题描述】:

可能重复:How to find number of days between two dates using php

收集两个日期之间的天数,例如 2012 年 2 月 11 日 之间 2012 年 2 月 12 日

结果是天数=1天

【问题讨论】:

您已标记此 AJAX 和 PHP。您需要知道如何在 javascript 或 PHP 中执行此操作吗? 【参考方案1】:

您可以使用 strtotime() 函数将日期转换为时间戳

$date1 = strtotime("02/11/2012");
$date2 = strtotime("02/12/2012");
$difference = $date1 - $date2;

然后你有一个新的时间戳,以秒为单位的差异,所以你可以使用 date() 函数将其转换为天:

$days = date("d", $difference);

【讨论】:

【参考方案2】:

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');
?>

【讨论】:

这可能比使用 strtotime() 慢得多,但它是一种替代方法 ;) @Jeroen:虽然确实考虑了夏令时/闰年和其他因素...... 这会有什么不同? strtotime() 返回的 UNIX 时间戳只是自 1970 年 1 月 1 日以来的秒数,因此会自动“考虑”闰年。 @Jeroen:那条评论是关于操纵DateTime 对象的,我觉得这比基于每天86400 秒的计算更可靠。 DateTime 对象(以及它在 PHP 5.3 中的改进)更加稳定;这就是我的意思。 当然,如果你要操纵它,这是要走的路。【参考方案3】:

试试这个

function dateDiff ($d1, $d2) 

  return round(abs(strtotime($d1)-strtotime($d2))/86400);

 

该函数使用 PHP ABS() 绝对值始终返回一个正数作为两个日期之间的天数。

【讨论】:

【参考方案4】:
echo (strtotime('02/12/2012') - strtotime('02/11/2012')) / (24*60*60);

这一行将两个日期转换为 unix 时间戳,减去它们,然后除以一天中的秒数。

【讨论】:

以上是关于收集两个日期之间的天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java,计算两个日期之间的天数[重复]

计算两个日期之间的天数[重复]

两个日期之间的天数 [重复]

Java获取两个日期之间的天数[重复]

两个日期之间的天数差异[重复]

在html中计算两个输入类型=“日期”之间的天数[重复]