Я не могу понять, как добавить 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, связанных с необходимостью повторного анализа строки даты в значение времени, добавление, а затем повторное преобразование в строку.
Посмотрите http://www.php.net/manual/en/datetime.createfromformat.php и http://www.php.net/manual/en/datetime.add.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», чтобы получить желаемый формат.