2012-10-30 33 views
6

Tôi đang sử dụng php để định dạng lại ngày và đăng nó lên mysql. Mọi thứ hoạt động tốt cho đến khi tôi vượt qua các ngày cho năm tiếp theo. Ví dụ: Mon, 14 Jan, 2013 sẽ được dịch sang số 2012-01-16. Định dạng chính xác không phải là ngày tháng, tôi thậm chí đã thử thay đổi định dạng mà tôi chuyển nó, vẫn không thay đổi. Đây là những gì nó được Mon, 14 Jan, 2013 và đây là php mà xử lý nó:php strtotime() messes với ngày của một năm khác nhau

$startdate = $_REQUEST['one']; 
$start = date("Y-m-d", strtotime($startdate)); 

bất kỳ manh mối là tại sao các nấc cục chỉ xảy ra khi chúng ta bước vào một năm mới, thậm chí nhiều năm qua?

+0

Vâng, _something_ là sai với việc thêm 'Mon, '. [this] (http://codepad.org/BXfxxeX5) hoạt động tốt mặc dù. Chỉnh sửa: Nó không hoạt động! – Prasanth

+0

Bạn đã thử 'Mon, 14 Jan, 2012' chưa? Đó là trong quá khứ, và nó vẫn sẽ thất bại. (cung cấp cho bạn '" 2012-01-16 "') –

+0

không, năm hiện tại hoạt động tốt – Osman

Trả lời

6

Hãy xem here để biết danh sách tất cả các định dạng hợp lệ cho strtotime(). Người bạn đang sử dụng không có mặt.

Nếu bạn muốn sử dụng date_create_from_format thay vào đó, đây là cách:

date_create_from_format("Mon, 14 Jan, 2013","D, d M, Y") 
+0

điều gì sẽ khiến nó hoạt động cho tất cả các ngày khác? – Osman

+0

@ Mr.SirKingOsman Nó không hoạt động cho tất cả các ngày khác. Tôi vừa cho bạn một ví dụ. 'Thứ Hai, ngày 14 tháng 1, 2012' bị hiểu sai là' 2012-01-16'. Loại chuỗi này sẽ khó phân tích, bởi vì có thể nhập một ngày trong tuần không khớp với ngày tháng. –

+0

Tôi thấy bạn đến từ đâu nhưng tôi kiểm soát ngày và định dạng, người dùng chỉ chọn, tôi đã thử hệ thống này tuy nhiên và tôi thấy những lợi thế của nó và nó hoạt động, cảm ơn! – Osman

Các vấn đề liên quan