MySQL: работа с датами до 1970 года - PullRequest
9 голосов
/ 17 декабря 2010

Я работаю на церковном сайте, в котором много событий до 1970, эти события начинаются с 1001 до сегодняшнего дня, как я могу хранить даты в MySQL?

$y = $_REQUEST["year"];
$m = $_REQUEST["month"];
$d = $_REQUEST["day"];

$date = date("Y-m-d", "$y/$m/$d");

Это прекрасно работает только для дат после 1970, как я могу сохранить даты до этого года?

Какой тип данных я должен иметь в MySQL? Теперь я установил для моего столбца значение date type

1 Ответ

20 голосов
/ 17 декабря 2010

DATE в порядке.Он может хранить значения от 1000 до 9999 г. н.э. .

Тип DATE используется, когда вам нужно только значение даты, без части времени.MySQL извлекает и отображает значения DATE в формате «ГГГГ-ММ-ДД».Поддерживаемый диапазон: от «1000-01-01» до «9999-12-31».

Отличается от функций даты в старом стиле PHP (date(), strtotime() ....) они работают с метками времени UNIX и, при использовании 32-битных значений, ограничены диапазоном дат с 1970 по 2038 год.

Чтобы работать со значениями дат выше этого, работайте с PHP 5 new objectориентированный DateTime класс .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...