给定数据库中的时间戳如下:2012-06-06T00:27:33Z
在浏览器中为用户呈现它的最佳方式是什么:
5/02/12 3:48 PM
是否最好使用 JS 库来使用客户端在客户端的本地时间渲染?这里的最佳实践是什么?谢谢
我已经使用Moment JS
库进行常规日期解析和格式化。它很甜。
http://momentjs.com/
您的示例基本上是:
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
默认情况下,Moment以本地时间解析,自动执行时区转换。
如果您使用的是 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) %>
如果需要调整时区,则首先需要查询用户的时区。有几种方法可以做到这一点。
然后在视图中,您可以使用例如
<%= 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 %>
您应该使用区域设置。
locales/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 %>
对于时区转换:
config/environment/development.rb
config.time_zone = 'Berlin'