programing

datetime php/module에 30분 추가

copyandpastes 2023. 1. 22. 22:53
반응형

datetime php/module에 30분 추가

mysql에 datetime 필드(end Time)가 있습니다.gmdate()를 사용하여 이 endTime 필드에 입력합니다.

저장된 값은 2009-09-17 04:10:48과 같습니다.저는 이 종료 시간에 30분을 더해서 현재 시간과 비교하고 싶습니다.즉, 사용자는 endTime 내에 특정 태스크를 30분 동안만 수행할 수 있습니다.endTime 30분이 경과한 후 작업을 수행할 수 없도록 해야 합니다.

어떻게 그걸 php로 할 수 있죠?

gmdate를 사용하여 존의 차이가 없는지 확인합니다.

잘 부탁드립니다

MySQL을 사용하는 경우 다음과 같이 할 수 있습니다.

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


순수 PHP 솔루션의 경우 스트롯타임을 사용합니다.

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

이거 드셔보세요.

DATE_ADD(datefield, INTERVAL 30 MINUTE)

MySQL에는 두 번 더 추가하는 기능이 있어 MySQL에서 모든 작업을 수행할 수 있습니다(>= MySQL 4.1.3을 사용하는 경우).

예를 들어 (테스트되지 않은)

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

도밍크는 옳은 생각을 가지고 있지만 계산은 다른 쪽에 두고 있다.

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

언급URL : https://stackoverflow.com/questions/1436827/adding-30-minutes-to-datetime-php-mysql

반응형