Intereting Posts

Добавление 10 минут к дате с mysql datetime и сравнение его с временем

Я не могу понять, как добавить 10 минут к тому времени, которое я получаю из базы данных mysql, полевая структура – это дата и время.

Текущий код

$nowtime = date('Ymd h:i:s'); $timeoflastlogin = $db->gettime(); //ADD 10 MINS TO TIME LAST ATTEMPTED $endtime = strtotime('+ 10 minutes', $timeoflastlogin ); //$endtime = date('Ymd h:i:s', strtotime('+ 10 minutes', $timeoflastlogin ); 

Это отображает "2011-09-07 13:53:43 <время последнего входа 2011-09-07 03:56:15 <сейчас время 2611 <конец – это должно быть время последнего +10 минут"

Я не могу понять, как добавить 10 минут к времени / дате из mysql, мне нужно сделать это, а затем установить команду для сравнения времени и последнего входа, так что, если это было 10 минут, я могу остановить попытку пользователя логин снова!

Спасибо за вашу помощь

$timeoflastlogin – это не временная метка Unix, а строка – поэтому вы не можете использовать это как параметр $now для strtotime. Это должно работать:

 $endtime = strtotime('+ 10 minutes', strtotime( $timeoflastlogin ) ); 

или проще:

 $endtime = strtotime( $timeoflastlogin ) + 600; // 10 minutes == 600 seconds 

Вы можете сделать это непосредственно в базе данных:

 SELECT DATE_ADD(datefield, INTERVAL 10 MINUTE) FROM ... 

Это избавляет вас от накладных расходов PHP, связанных с необходимостью повторного анализа строки даты в значение времени, добавление, а затем повторное преобразование в строку.

Вот как я это делал в прошлом: используйте функцию mktime php: http://www.php.net/manual/en/function.mktime.php

Это позволяет передавать значения за день, месяц, год и т. Д. (Которые вы можете вытащить из своего времени sql). Если минут больше 60, он автоматически отрегулирует часы для вас. Затем он вернет отметку времени.

Чтобы вернуть эту временную метку в формат даты sql, используйте функцию даты.

Что-то вроде этого:

 echo date("MdY", mktime($hour, $min + 10, $sec, $month, $day, $year)); 

Вам нужно будет настроить «MdY», чтобы получить желаемый формат.