[英]adding 30 minutes to datetime php/mysql
我在 mysql 中有一個日期時間字段(endTime)。 我使用 gmdate() 來填充這個 endTime 字段。
存儲的值類似於 2009-09-17 04:10:48。 我想為此結束時間添加 30 分鍾,並將其與當前時間進行比較。 即)用戶只允許在他的 endTime 內的 30 分鍾內完成某項任務。 在他結束時間 30 分鍾后,我不應該讓他做任務。
我怎么能在 php 中做到這一點?
我正在使用 gmdate 來確保沒有區域差異。
提前致謝
試試這個
DATE_ADD(datefield, INTERVAL 30 MINUTE)
MySQL 有一個名為ADDTIME
的函數,用於將兩次相加 - 因此您可以在 MySQL 中完成整個操作(前提是您使用的是 >= MySQL 4.1.3)。
類似的東西(未經測試):
SELECT * FROM my_table WHERE ADDTIME(endTime + '0:30:00') < CONVERT_TZ(NOW(), @@global.time_zone, 'GMT')
Dominc 有正確的想法,但將計算放在表達式的另一側。
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);
通過添加 30 分鍾從 MySQL 表中獲取日期
SELECT loginDate, date_add(loginDate,interval 30 minute) as newLoginDate
FROM `tableName`;
這將導致如下
Login Date - 2020-07-22 14:00:00
New Login Date - 2020-07-22 14:30:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.