如何找到两个日期之间的天数差异[重复]

Posted

技术标签:

【中文标题】如何找到两个日期之间的天数差异[重复]【英文标题】:How to find the difference in days between two dates [duplicate] 【发布时间】:2011-05-29 00:27:31 【问题描述】:

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

如果我有两个日期 - 如何找到两个日期之间的真正天数差异?您必须考虑闰年和每个月的天数。

2010-03-292009-07-16 之间有多少天?

【问题讨论】:

复制:***.com/questions/2040560/… 这可以在 PHP 日期函数页面找到:php.net/manual/en/function.date.php#100251 ***.com/questions/ask-advice 【参考方案1】:

strtotime 和简单的数学:

   $daylen = 60*60*24;

   $date1 = '2010-03-29';
   $date2 = '2009-07-16';

   echo (strtotime($date1)-strtotime($date2))/$daylen;

【讨论】:

echo abs(floor((strtotime("2010-03-29")-strtotime("2009-07-16"))/(60*60*24))); 我同意abs,但不同意floor。这些天数与天数比较,floor 与否,结果相同。此外,X 和 Y 之间的天数可能是 232.67 并且它仍然有效(除非 OP 特别要求对其进行四舍五入)。 以上解决方案准确给出,结果在+或-天。 在夏令时的地区,有些日子有 23/25 小时。那你会遇到麻烦的。使用日期时间。【参考方案2】:

给你:

<?php
$date1 = strtotime("2010-03-29");
$date2 = strtotime("2009-07-16");
$dateDiff = $date1 - $date2;
$fullDays = floor($dateDiff/(60*60*24));
echo "Differernce is $fullDays days";
?>

【讨论】:

【参考方案3】:

查看 PHP DateTime 类。它处理所有血淋淋的细节,因此您只需进行常规减法即可。

$d1=date_create('1999-10-23');
$d2=date_create('2004-04-17');

$i=date_diff($d2,$d1);
echo $i->format('%a');

【讨论】:

1.这应该是 $i->format('%d') (忘记了 %) 2. 对于总天数,使用 '%a' 3. Windows 版本中有一个错误,使用它时总是返回 6015函数(见bugs.php.net/bug.php?id=51184) 它不能正常工作,当我尝试使用月份值时有时会得到 0

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

如何找到两个日期之间的差异c ++

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

如何使用javascript查找两个日期之间的天数差异

如何获取 MySQL 上两个日期之间的差异天数?

具有共同 id 的组中具有最大天数的两个日期之间的差异

如何计算两个日期之间的差异?