鑑於時間戳在DB像這樣:2012-06-06T00:27:33Z如何使用客戶端時區在客戶端中輸出數據庫時間戳作爲日期戳?
什麼是使這個瀏覽器用戶,像這樣的最佳方式:
5/02/12 3:48 PM
是不是最好的使用JS庫來使用客戶端在客戶端的本地時間渲染?這裏最好的做法是什麼?謝謝
鑑於時間戳在DB像這樣:2012-06-06T00:27:33Z如何使用客戶端時區在客戶端中輸出數據庫時間戳作爲日期戳?
什麼是使這個瀏覽器用戶,像這樣的最佳方式:
5/02/12 3:48 PM
是不是最好的使用JS庫來使用客戶端在客戶端的本地時間渲染?這裏最好的做法是什麼?謝謝
我已經使用Moment JS
庫進行常規日期解析和格式化。它非常甜。
你的例子是基本上是:
var date = moment('2012-06-06T00:27:33Z');
console.log('Formatted is %s', date.format('M/DD/YY h:m A'));
>> Formatted is 6/05/12 5:27 PM
默認情況下瞬間解析本地時間,自動做時區轉換。
如果您使用Rails,在environment.rb中添加類似
Date::DATE_FORMATS[:browser] = "%d/%b/%Y %H:%m"
看看這個根據自己的口味進行格式化。 http://www.onrails.org/2008/08/20/what-are-all-the-rails-date-formats
在視圖中你會把
<%= Model.date_field.to_s(:browser) %>
如果您需要調整時區,你首先需要查詢您的用戶的時區。有幾種方法可以做到這一點。
然後在視圖中,您可以使用e.g
<%= Model.date_field.change(:offset => "+0300").to_s(:browser) %>
或
<%= Model.date_field.in_time_zone(-3).to_s(:browser) %>
或
<%= Model.date_field.utc.to_s(:browser) %>
或
<%= (Model.date_field.utc + Time.zone_offset('EST')).to_s(:browser) %>
有任何選擇!
希望這有幫助!
嘗試:
<%= article.created_at.local_time %>
你應該使用的語言環境。
語言環境/ de.yml
de:
date:
formats:
default: "%d.%m.%Y"
short: "%e. %b"
long: "%A, %d.%B %Y um %H:%M"
only_day: "%e"
day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
order: [ :day, :month, :year ]
time:
formats:
default: "%A, %d.%B %Y um %H:%M"
short: "%d.%m.%Y"
long: "%d.%m.%Y, %H:%M:%S"
在視圖
:
<%= I18n.l current_article.created_at, :format => :long %>
和用於時區轉化:
配置/環境/發育。rb
config.time_zone = 'Berlin'
嘿,謝謝,這很酷,這對我們的需求來說有點複雜和大。我也發現了這個,但它似乎沒有工作。非常小,解決了痛苦。 http://code.google.com/p/jquery-localtime/wiki/Usage – AnApprentice
那麼如何將這個應用到所有
嗯,首先你需要確定你是要在純粹的客戶端(使用JS)還是事實上在渲染過程中做到服務器端。通常情況下,如果你有用戶時區,而不是服務器端更簡單(見第一個答案)。如果你打算在JS中做,而不是直接遍歷所有的'時間'(或任何其他)元素,那麼獲取值或屬性並實例化一些'Moment'類。 –