У меня есть столбец текста в mysql, и он хранит значение даты в формате yyyy-mm-dd. Теперь, на моей php странице, я использую этот код для парсинга в значение даты.
date("F j, Y", strtotime($row['value']));
Теперь, я просто считал, что strtotime () синтаксические анализы оценивает только после 1 января 1970. У меня есть партия значений даты перед той датой. Вокруг существует ли работа? Я не хочу изменять свою структуру базы данных.
Из документации для strtotime()
:
strtotime() имеет предел диапазона между пт, 13 дек 1901 20:45:54 GMT и вт, 19 янв 2038 03:14:07 GMT; хотя до PHP 5.1.0 этот диапазон был ограничен с 01-01-1970 до 19-01-2038 на некоторых операционных системах (Windows).
Какую версию PHP вы используете? И на какой платформе? Возможно, пришло время для обновления.
Если вы работаете с датами за пределами диапазона от 13 декабря 1901 года до 19 января 2038 года, рассмотрите возможность использования объектов DateTime PHP, которые могут работать с гораздо более широким диапазоном дат.
Процедурные:
$date = date_create($row['value']);
if (!$date) {
$e = date_get_last_errors();
foreach ($e['errors'] as $error) {
echo "$error\n";
}
exit(1);
}
echo date_format($date, "F j, Y");
ООП:
try {
$date = new DateTime($row['value']);
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
echo $date->format("F j, Y");
вы должны использовать date
columnn, а не text.
и date_format()
SQL-функция для форматирования даты в запросе