我有一张如下表格来存储未来日期,
email date
abc@gmail.com 8/10/2014
我想要找到上述日期和服务器日期之间的差异。
我正在使用date("m/d/Y")
来获取当前日期。
如果日期(“m / d / Y”)= 2014年7月20日,那么我需要答案为21。
请帮我找一下使用PHP& MySQL,或建议一个更好的方法来找到天数的差异。
答案 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
中,您现在应该有几天的差异。