MySQL: работа с датами до 1970 года

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

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

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

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

какой тип данных я должен был в MySQL? Теперь я установил свою колонку в date тип

1 ответов


DATE - Это хорошо. Он может хранить значения от 1000 до 9999 AD.

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

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

чтобы работать со значениями дат за пределами этого, работайте с PHP 5 новый объектно-ориентированный DateTime класс.