可能重复:
How to find number of days between two dates using php
我正在尝试比较存储在两个PHP变量中的两个日期。 $curDate
和$prevDate
以yyyy-mm-dd
格式存储。为了简单地显示它们,我一直在使用date("n,j,Y", strtotime($prevDate))
或日期函数的第一个参数的其他组合。
我想比较$curDate
和$prevDate
的天数,但问题是,第31天可能是从1开始的1天所以如果我只是以这种方式看日期然后我无法处理这种行为。
我查看了PHP函数JulianToJD()
,但不能只传递SQL日期,通过date()
和strtotime()
函数进行格式化。
有人可以帮我找出一个聪明的方法来比较日期的两个日期,同时注意几个月的结束吗?
答案 0 :(得分:3)
你可以用两种方式做到:
MySQL的:
SELECT (TO_DAYS(curDate) - TO_DAYS(prevDate)) as Days ...
为您提供天数差异(TO_DAYS()返回自0年以来的天数)
PHP,使用DateTime:
$prev = DateTime::CreateFromFormat('Y-m-d', $prevDate);
$cur = DateTime::CreateFromFormat('Y-m-d', $curDate);
$days = $cur->diff($prev)->format('%a');
答案 1 :(得分:3)
请参阅stackoverflow.com/q/2040560/469210。即计算日期的差异并应用楼层函数:
floor($datediff/(60*60*24));