Проблемы с форматированием даты
Вопрос
Я пытаюсь написать функцию для форматирования даты и времени для себя.У меня есть почти идентичная функция, которая форматирует только дату.Эта функция работает нормально.Я просто добавил немного кода, чтобы попытаться отформатировать дату со временем.Он должен возвращать что-то вроде "18 мая 2009 года, 9:50 вечера", но я получаю это предупреждение:
Warning: mktime() expects parameter 6 to be long, string given in
public_html/include/functions.php on line 421
Вот код, который у меня есть:
function dateTimeFormat($dateIn)
{
$x = explode(" ",$dateIn);
$y = explode("-",$x[0]);
$z = explode(":",$x[1]);
$year = $y[0];
$month = $y[1];
$day = $y[2];
$hour = $z[0];
$min = $z[1];
$dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year));
return $dateOut;
}
То, что он выдает, тоже неправильно.Это выводит из:
December 31, 1969 07:00 PM
но временная метка в базе данных равна
2009-05-18 05:07:39
Решение
В PHP уже есть отличная функция синтаксического анализа дат: strtotime()
.Он возвращает временную метку Unix, которую вы можете передать date()
.
Другими словами, ваша функция может быть сведена к этому:
function dateTimeFormat($dateIn)
{
return date("F j, Y h:i A", strtotime($dateIn));
}
Не связан с StackOverflow