加入30分钟,以日期时间PHP / MySQL的(adding 30 minutes to date

2019-07-18 08:06发布

我在MySQL有一个时间字段(结束时间)。 我用gmdate()来填充这个领域的结束时间。

存储的值是一样的东西2009-09-17 4时10分48秒。 我想30分钟添加到此结束时间,并与当前时间进行比较。 即)允许用户做他的结束时间内只有30分钟的某项任务。 他的结束时间的30分钟后,我不应该让他做一个任务。

我怎么能做到这一点在PHP?

我使用gmdate,以确保没有区差异。

提前致谢

Answer 1:

如果你正在使用的MySQL ,你可以做这样的:

SELECT '2008-12-31 23:59:59' + INTERVAL 30 MINUTE;


对于纯PHP解决方案使用的strtotime

strtotime('+ 30 minute',$yourdate);


Answer 2:

试试这个

DATE_ADD(datefield, INTERVAL 30 MINUTE)


Answer 3:

MySQL有一个调用的函数ADDTIME添加两次在一起-这样你就可以做整个事情在MySQL(你使用> = 4.1.3的MySQL提供)。

喜欢的东西(未经测试):

SELECT * FROM my_table WHERE ADDTIME(endTime + '0:30:00') < CONVERT_TZ(NOW(), @@global.time_zone, 'GMT')


Answer 4:

Dominc看法是正确的,但把计算上表达的另一边。

SELECT * FROM my_table WHERE endTime < DATE_SUB(CONVERT_TZ(NOW(), @@global.time_zone, 'GMT'), INTERVAL 30 MINUTE)

这样做,你做30分钟的计算,而不是一次对每一行的优势。 这也意味着MySQL能够使用索引该列。 这两个thse给你加速。



Answer 5:

使用DATE_ADD功能

DATE_ADD(datecolumn, INTERVAL 30 MINUTE);


文章来源: adding 30 minutes to datetime php/mysql