#php #mysql #date
#php #mysql #Дата
Вопрос:
Я пытаюсь заставить свою функцию добавить 1 день к дате отправки, но я не могу понять, как соответствовать форматированию MySQL. В настоящее время у меня есть:
$result = mysql_query($query);
$lastdate = mysql_result($result, 0, 'date');
$date = strtotime(date("Y-m-d", strtotime($lastdate)) . " 1 day");
Я знаю $date =
, что где-то строка неверна, но я не слишком хорошо понимаю эту функцию. Ему присваивается дата в формате ГГГГ-мм-дд ($query просто получает последнюю дату в базе данных), из-за того, как MySQL хранит даты.
Я предполагаю, что использование функции strtotime — это неправильно, или я неправильно понял формат / идею.
Спасибо за любую помощь, теперь это меня раздражает:(
Комментарии:
1. Какой тип данных находится в вашем столбце «дата»? Целое число? Дата? Дата-время?
Ответ №1:
Я думаю, вы хотите $date = date("Y-m-d", strtotime(" 1 day", $lastdate))
.
Возможно, вам потребуется преобразовать $lastdate
с помощью strtotime
.
Ответ №2:
Вы могли бы просто добавить 86400 секунд к результату из strtotime(), поскольку это возвращает целое число секунд с 1/1/1970, а в сутках 86400 секунд.
$lastdate = '2011-10-11 22:07:11';
$date = date("Y-m-d", strtotime($lastdate) 86400);
echo $date;
Выводит:
2011-10-12
Комментарии:
1. Вы могли бы это сделать … но не так ясно, что вы делаете.
2. Лично я думаю, что это ясно, но я воспринимаю это как количество секунд в сутках. Это можно было бы записать как
(60*60*24)
, или прокомментировать, чтобы сделать его более понятным.