PHP strtotime()
выводит метку времени Unix.Если тип столбца вашей базы данных DATETIME , временная метка Unix имеет неправильный формат.Вы можете просто вставить отформатированную строку date()
.
Например:
strtotime(date('Y-m-d H:i:s'))
1562117846
date('Y-m-d H:i:s')
2019-07-02 21: 36: 40
Для MySQL:
MySQL распознает значения DATETIME и TIMESTAMP ... [a] строка вформат ' ГГГГ-ММ-ДД чч: мм: сс ' или формат * ГГГ-ММ-ДД чч: мм: сс '.Здесь также разрешен «смягченный» синтаксис: любой символ пунктуации может использоваться в качестве разделителя между частями даты или частями времени.Например, «2012-12-31 11:30:45», «2012 ^ 12 ^ 31 11 + 30 + 45», «2012/12/31 11 * 30 * 45» и «2012 @ 12 @ 31 11».^ 30 ^ 45 'эквивалентны.
Строковые и числовые литералы в контексте даты и времени
Однако кажется, что вы используететекущая отметка времени, когда вы можете использовать значения, отправленные из вашей формы.PHP date()
использует «текущее время, если метка времени не указана».
Если вы хотите использовать вместо этого свои опубликованные значения, вы действительно можете использовать strtotime()
для преобразования их в Unixметки времени и затем date()
для их форматирования.
$date = '2019-07-02';
$time = '15:28';
date('Y-m-d H:i:s',strtotime($date.' '.$time));
2019-07-02 15: 28: 00
В качестве альтернативы, я мог бы рекомендовать использовать PHP DateTime класс :
$date = '2019-07-02';
$time = '15:28';
$datetime = new Datetime($date.' '.$time);
echo $datetime->format('Y-m-d H:i:s');
2019-07-02 15: 28: 00