使用PHP比较两个SQL日期

时间:2011-07-05 15:04:31

标签: php mysql html

  

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

我正在尝试比较存储在两个PHP变量中的两个日期。 $curDate$prevDateyyyy-mm-dd格式存储。为了简单地显示它们,我一直在使用date("n,j,Y", strtotime($prevDate))或日期函数的第一个参数的其他组合。

我想比较$curDate$prevDate的天数,但问题是,第31天可能是从1开始的1天所以如果我只是以这种方式看日期然后我无法处理这种行为。

我查看了PHP函数JulianToJD(),但不能只传递SQL日期,通过date()strtotime()函数进行格式化。

有人可以帮我找出一个聪明的方法来比较日期的两个日期,同时注意几个月的结束吗?

2 个答案:

答案 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));