vyshkant
@vyshkant
developer

Как хранить дату по умолчанию в MySQL или почему DateTime('0000-00-00') показывает чушь?

Здравствуйте!
Вопрос весьма философский. База, таблица, в таблице есть необзятельные поля даты.
Для удобства сделал им default-значения (0000-00-00), чтобы в PHP одинаково обрабатывать и заполненные поля, и незаполненные (выводить нули или реальные даты).
Каковым было мое удивление, когда в результате выполнения этого кода
$date = new DateTime('0000-00-00');
echo $date->format("Y-m-d");

вместо ожидаемых нулей я увидел "-0001-11-30".

Как мне удалось выяснить, это не баг, а фича PHP.

Соответственно, хотелось бы узнать, как грамотнее хранить необязательную дату MySQL? Использовать NULL или другую маску?

З.Ы. Хранение с дефолтным значением '0000-00-00' я увидел в некоторых CMS.
  • Вопрос задан
  • 2760 просмотров
Решения вопроса 2
sivabur
@sivabur
Заблокировали просто так!
Использовать NULL.
Ответ написан
Комментировать
TheCreator
@TheCreator
Бездельник
Любое поле, которое может быть введено, а может и не быть должно иметь значением по умолчанию null.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Unix Timestamp наверное самый рассово правильный формат.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы