如何找到两个日期之间的天数差异[重复]
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-29
和 2009-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以上是关于如何找到两个日期之间的天数差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章