2010-11-09 51 views
0
Table - user_feed 
column name - date_n_time (type - datetime) 

如何编写PHP代码来检查表中的特定行的date_n_time是否距离现在(例如)5天之内? 在PHP和SQL中处理日期和时间的永久修复是什么?如何在SQL和PHP上处理日期和时间?

+0

从所有答案中,我建议你选择一个MySQL查询解决方案。 MySQL的引擎获得了日期和时间的命令,因此使用它并将PHP时间保存为其他内容。 – Shikiryu 2010-11-09 09:13:10

+0

我应该总是这样做,每次我都要决定MySQL和PHP之间的关系吗?这会使服务器端更快吗? – Sussagittikasusa 2010-11-09 10:12:20

回答

1

在PHP中使用date对象。有了它的时间戳,你可以自定义它,只要你喜欢。这很简单。

从手册:

// Prints something like: Monday 8th of August 2005 03:12:46 PM 
echo date('l jS \of F Y h:i:s A'); 
1

如果该值是一个linux时间戳,你可以把它比作时间():

if(date_n_time <= (time() - 5*24*60*60)){ //days hours mins secs 
... 
} 
1

这SQL代码将PHP的工作,以及使检查你的条件:

select * from user_feed where date_n_time > GETDATE() -5 
1

假设你要把它在脚本并排比较:

abs(strtotime(date_n_time)/(24*3600)) < 5 

请注意,这行是过去和未来的,因为你称它为'5 d从现在开始'。

对于数据库端解决方案,您需要检查供应商的文档。

1
$date = date("Y-m-d");// current date 

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +2 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +30 days"); 
1

我最喜欢用MySQL处理PHP日期和时间的方法是在MySQL中使用datetime数据类型,然后使用MySQL日期函数。您可以使用日期函数将日期转换为unix时间戳,然后在PHP中进行修改(如果您喜欢)。