PHP strtotime и формат даты MySQL

#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) , или прокомментировать, чтобы сделать его более понятным.