找出天之间的差异

时间:2014-06-29 17:13:04

标签: php mysql

我有一张如下表格来存储未来日期,

 email               date 

 abc@gmail.com    8/10/2014

我想要找到上述日期和服务器日期之间的差异。

我正在使用date("m/d/Y")来获取当前日期。

如果日期(“m / d / Y”)= 2014年7月20日,那么我需要答案为21。

请帮我找一下使用PHP& MySQL,或建议一个更好的方法来找到天数的差异。

3 个答案:

答案 0 :(得分:1)

您可以将日期转换为时间戳,然后计算天数:

(int)(strtotime('8/10/2014')-strtotime('07/20/2014'))/60/60/24

答案 1 :(得分:0)

最简单的方法是将日期存储为时间戳,然后您可以使用已保存在数据库中的时间戳减去当前时间戳。

PHP函数time()返回当前时间戳 - 即1970年1月1日以来的秒数。然后,您可以根据自己的喜好$stamp格式化时间戳date('m/d/Y', $stamp),例如。

除了使用日期促进算术运算之外,您还可以使用date()格式化显示带有时间戳的更多或更少信息,以及显示不同的格式( 2014年7月13日 vs. 2014年7月13日)。如果您将日期另存为字符串,例如" 8/10 / 2014",更改格式会非常复杂,例如,它无法获得正确的时间。

查找时间戳$stamp到目前为止的天数很久很容易:

$now = time();
$days = ($stamp - $now) / (24*3600);

如果需要,使用round()获取完整数字(例如7.2309只会变为7)。

答案 2 :(得分:0)

我个人使用DateTime:

在变量中选择日期。在这个例子中,我们将其称为$DBDate

$DBDateObj = DateTime::createFromFormat('j/m/Y', $DBDate);
$TodayDateObj = new DateTime();
$interval = $TodayDateObj->diff($DBDateObj);
$daysDiff = $interval->days;

$daysDiff中,您现在应该有几天的差异。