2013-03-25 26 views
11

Trong chế độ xem Rails của tôi, tôi có mã bên dưới hiển thị ngày giờ.Làm cách nào để định dạng ngày giờ trong đường ray?

<%= link_to timeslot.opening, [@place, timeslot] %> 

Kết quả của dòng này là dưới đây:

2013-02-02 01:00:00 UTC 

Làm thế nào để thay đổi điều này nên nó sẽ hiển thị như sau:

2/2/13: X:00 PST 
+1

Hãy thử - timeslot.opening.strftime (% d /% m /% y:% H:% M:% S% Z) – Ash

+0

Bạn có thể sử dụng [** stamp ** gem] (https: // github .com/jeremyw/stamp) hoặc [** strftime **] (http://strfti.me/). –

Trả lời

17

Sử dụng ruby ​​của strftime() vào những ngày/datetimes:

<%= link_to timeslot.opening.strftime("%Y %m %d"), [@place, timeslot] %> 

Hãy xem the documentation để tìm hiểu cách thức hoạt động của định dạng.

+0

Cảm ơn! Điều này và tài liệu là siêu hữu ích. Tôi đã không thể tìm thấy cách chuyển đổi thời gian giữa các múi giờ. Trong ví dụ của tôi, thời gian hiện đang ở dạng UTC nhưng muốn hiển thị PST. Bạn có biết làm thế nào tôi có thể kích hoạt điều này? – sharataka

+0

Chào mừng bạn :) Tham khảo: http://stackoverflow.com/questions/6118779/how-to-change-default-timezone-for-activerecord-in-rails3 – weltschmerz

+0

hoàn hảo, cảm ơn sự giúp đỡ! – sharataka

5

Bạn nên sử dụng một helper cho việc này.

Nếu bạn muốn chuyển đổi từ UTC để PST bạn có thể sử dụng in_time_zone phương pháp

def convert_time(datetime) 
    time = Time.parse(datetime).in_time_zone("Pacific Time (US & Canada)") 
    time.strftime("%-d/%-m/%y: %H:%M %Z") 
end 

<%= link_to convert_time(timeslot.opening), [@place, timeslot] %> 
0

để có được những định dạng ngày chính xác mà bạn đang tìm kiếm trong ví dụ của bạn sử dụng định dạng strftime chuỗi sau "%-d/%-m/%y: %k:00 PST"

Tuy nhiên, đó có thể không chính xác những gì bạn muốn.Xin vui lòng làm rõ trong câu hỏi của bạn (a) những gì bạn muốn làm với trường thời gian (ví dụ: bạn luôn muốn hiển thị thời gian trên giờ? X: 00) và (b) bạn luôn muốn báo cáo thời gian PST hay bạn muốn in múi giờ thực tế hoặc bạn muốn chuyển đổi t đến PST ??

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