如何使用客户端时区将数据库时间戳输出为客户端中的日期戳



给定数据库中的时间戳如下: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'

最新更新