Предотвратить установку даты PHP () от дефолта до 12/31/1969

Я использую базу данных MySQL с PHP. Я сохраняю свои значения даты в базе данных, используя поле DATETIME .

Я использую этот код PHP для преобразования введенных дат в соответствующий формат для MySQL.

 date("Ymd H:i:s", strtotime($inputDate)) 

Однако всякий раз, когда дата недействительна, она помещается в базу данных как 1969-12-31 19:00:00

Есть ли способ сделать это по умолчанию 0000-00-00 00:00:00 ?

Просто определите валидность с выходом strtotime() , который возвращает false при strtotime() .

Что-то вроде:

 $time = strtotime($inputDate); $date = ($time === false) ? '0000-00-00 00:00:00' : date('Ymd H:i:s', $time); 

strtotime возвращает false, значение даты равно 0. Прежде чем вы должны проверить, что strtotime не возвращает false, чтобы это не мешало:

 $ts = strtotime($inputDate); if ($ts === false) { //invalid date } else { echo date("Ymd H:i:s", $ts); }