Table - user_feed
column name - date_n_time (type - datetime)
如何编写PHP代码来检查表中的特定行的date_n_time
是否距离现在(例如)5天之内? 在PHP和SQL中处理日期和时间的永久修复是什么?如何在SQL和PHP上处理日期和时间?
Table - user_feed
column name - date_n_time (type - datetime)
如何编写PHP代码来检查表中的特定行的date_n_time
是否距离现在(例如)5天之内? 在PHP和SQL中处理日期和时间的永久修复是什么?如何在SQL和PHP上处理日期和时间?
在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');
如果该值是一个linux时间戳,你可以把它比作时间():
if(date_n_time <= (time() - 5*24*60*60)){ //days hours mins secs
...
}
这SQL代码将PHP的工作,以及使检查你的条件:
select * from user_feed where date_n_time > GETDATE() -5
它可以直接写入SQL,看起来像这样(例如):
SELECT INTERVAL 5 DAY + column;
的永久性修复将阅读文档:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
http://de2.php.net/manual/en/ref.datetime.php
假设你要把它在脚本并排比较:
abs(strtotime(date_n_time)/(24*3600)) < 5
请注意,这行是过去和未来的,因为你称它为'5 d从现在开始'。
对于数据库端解决方案,您需要检查供应商的文档。
$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");
我最喜欢用MySQL处理PHP日期和时间的方法是在MySQL中使用datetime数据类型,然后使用MySQL日期函数。您可以使用日期函数将日期转换为unix时间戳,然后在PHP中进行修改(如果您喜欢)。
从所有答案中,我建议你选择一个MySQL查询解决方案。 MySQL的引擎获得了日期和时间的命令,因此使用它并将PHP时间保存为其他内容。 – Shikiryu 2010-11-09 09:13:10
我应该总是这样做,每次我都要决定MySQL和PHP之间的关系吗?这会使服务器端更快吗? – Sussagittikasusa 2010-11-09 10:12:20