2013-07-22 30 views
5

Tôi đang cố gắng tìm ra lý do tại sao tôi vẫn gặp lỗi invalid date cho một số ngày nhất định.Rails phân tích cú pháp Ngày không hợp lệ

Ví dụ:

này hoạt động:

e = "07/02/2013" 
=> "07/02/2013" 
start_date = DateTime.parse(e).beginning_of_day.strftime("%Y-%d-%m %H:%M:%S") 
=> "2013-07-01 00:00:00" 
end_date = DateTime.parse(e).end_of_day.strftime("%Y-%d-%m %H:%M:%S") 
=> "2013-07-02 23:59:59" 

này trả ArgumentError: invalid date

e = "07/18/2013" 
=> "07/18/2013" 
start_date = DateTime.parse(e).beginning_of_day.strftime("%Y-%d-%m %H:%M:%S") 
ArgumentError: invalid date 
from (irb):53:in `parse' 
end_date = DateTime.parse(e).end_of_day.strftime("%Y-%d-%m %H:%M:%S") 
ArgumentError: invalid date 
from (irb):55:in `parse' 

Tôi đang sử dụng định dạng ngày như nhau trong cả hai trường hợp. Điều gì có thể là nguyên nhân của việc này/Tôi cần phải thay đổi gì để sửa chữa nó?

+1

Xem câu trả lời @ErminDedovic. Và lưu ý rằng trong ví dụ "7/2/2013" của bạn, đầu ra 'strftime' của bạn là" 2013-07-02 "cho định dạng"% Y-% d-% m ", không phải là thứ bạn muốn (* tức là *, nó không thực sự "làm việc" như bạn đã chỉ ra). – lurker

Trả lời

4

Định dạng của ngày là dd/mm/yyyy. Bạn đang cố tạo ngày tháng là ngày thứ 7 của tháng 18 năm 2013.

Bạn có thể sử dụng strptime nếu bạn muốn tùy chỉnh định dạng ngày của mình.