添加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);