2010-02-08 23 views
10

Tôi đang sử dụng cơ sở dữ liệu MySQL với PHP. Tôi lưu trữ các giá trị ngày tháng trong cơ sở dữ liệu bằng cách sử dụng trường DATETIME.Ngăn chặn ngày PHP() từ mặc định đến ngày 31/12/1969

Tôi đang sử dụng mã PHP này để chuyển đổi ngày đã nhập thành định dạng thích hợp cho MySQL.

date("Y-m-d H:i:s", strtotime($inputDate)) 

Tuy nhiên, bất cứ khi nào một ngày là không hợp lệ, nó được đặt trong cơ sở dữ liệu như 1969-12-31 19:00:00

Có cách nào để mặc định này để 0000-00-00 00:00:00?

Trả lời

1

strtotime đang trở lại sai mà evals ngày như 0. Trước khi bạn nên kiểm tra strtotime mà không trả về false để ngăn chặn điều đó:

$ts = strtotime($inputDate); 

if ($ts === false) 
{ 
//invalid date 
} 
else 
{ 
echo date("Y-m-d H:i:s", $ts); 
} 
15

Chỉ cần phát hiện có giá trị với đầu ra của strtotime(), mà returns false on failure.

Giống như:

$time = strtotime($inputDate); 
$date = ($time === false) ? '0000-00-00 00:00:00' : date('Y-m-d H:i:s', $time); 
Các vấn đề liên quan