我是从UTC +8时区开始的,当我尝试将2014-06-04 12:51:53 +0800
/从Rails / timestamp转换为我的时区时。但它只能在chrome中工作,而其他所有浏览器都无法应用UTC时区。结果总是a few seconds ago
。以下是我如何使用它:
window.updateTimestamps = (elements)->
moment.lang('mn')
moment().tz("Asia/Ulaanbaatar").format()
elements.each( ->
timestamp = moment(new Date($(@).data('datetime')))
$(@).html(timestamp.fromNow())
)
$(document).on('ready', ->
moment.tz.add
zones:
"Asia/Ulaanbaatar": [
"7:7:32 - LMT 1905_7 7:7:32"
"7 - ULAT 1978 7"
"8 Mongol ULA%sT"
]
rules:
Mongol: [
"1983 1984 3 1 7 0 0 1 S"
"1983 1983 9 1 7 0 0 0"
"1985 1998 2 0 8 0 0 1 S"
"1984 1998 8 0 8 0 0 0"
"2001 2001 3 6 8 2 0 1 S"
"2001 2006 8 6 8 2 0 0"
"2002 2006 2 6 8 2 0 1 S"
]
links: {}
以下是我尝试转换的HTML:
<abbr class="time-ago" data-datetime="2014-06-04 12:51:53 +0800"></abbr>
以下是代码:
timeAgos = $('abbr.time-ago')
window.updateTimestamps(timeAgos)
setInterval(window.updateTimestamps, 60000, timeAgos)
谢谢你的回答。我不知道? Plz帮助我:)
答案 0 :(得分:5)
Javascript控制台在尝试使用您的日期初始化moment.js时会显示警告,并建议read this bug report。您必须将日期转换为ISO格式
>>> moment("2014-06-04 12:51:53 +0800").fromNow()
"a few seconds ago"
>>> moment("2014-06-04T12:51:53+0800").fromNow()
"7 days ago"
或改为使用格式说明符:
>>> moment("2014-06-04 12:51:53 +0800", "YYYY-MM-DD hh:mm:ss +ZZ").fromNow()
"7 days ago"