添加30分钟到datetime php / mysql
我在MySQL中有一个date时间字段(endTime)。 我使用gmdate()来填充这个endTime字段。
存储的值是类似于2009-09-17 04:10:48。 我想在此结束时间添加30分钟,并将其与当前时间进行比较。 即)用户被允许在他的结束时间内只做30分钟的某个任务。 结束30分钟后,我不应该让他做任务。
我怎么能做到这一点在PHP?
我使用gmdate来确保没有区域差异。
提前致谢
如果你正在使用MySQL,你可以这样做:
SELECT '2008-12-31 23:59:59' + INTERVAL 30 MINUTE;
对于纯粹的PHP解决scheme使用strtotime
strtotime('+ 30 minute',$yourdate);
试试这个
DATE_ADD(datefield, INTERVAL 30 MINUTE)
MySQL有一个名为ADDTIME
的函数,用于将两次加在一起 - 所以你可以在MySQL中完成所有的事情(假设你使用> = MySQL 4.1.3)。
像(未经testing的):
SELECT * FROM my_table WHERE ADDTIME(endTime + '0:30:00') < CONVERT_TZ(NOW(), @@global.time_zone, 'GMT')
多米尼克有正确的想法,但把计算放在expression的另一面。
SELECT * FROM my_table WHERE endTime < DATE_SUB(CONVERT_TZ(NOW(), @@global.time_zone, 'GMT'), INTERVAL 30 MINUTE)
这样做的好处是你只需要一次30分钟的计算而不是每一行。 这也意味着MySQL可以使用该列上的索引。 这两个都给你一个加速。
使用DATE_ADD函数
DATE_ADD(datecolumn, INTERVAL 30 MINUTE);