将Ruby时间转换为HTML5全球日期和时间字符串

4
在Ruby中,如何将Fixnum 1291132740128(自纪元以来的毫秒数)转换为等效的HTML5全局时间和日期字符串(另请参见HTML5时间元素说明。例如,1979-10-14T12:00:00.001-04:00)?
我的第一次尝试是:
> Time.at(1291132740128/1000.0).strftime("%Y-%m-%dT%H:%M:%S-%Z")
=> "2010-11-30T10:59:00-EST"

但是,(1)如何获取毫秒?时间存储毫秒吗?
还有,(2)如何获得时区为-0400或-0500,具体取决于是否为夏令时?

编辑:现在我想想,也许最好保持它为1291132740128,并根据浏览器位置使用JavaScript进行转换。你怎么看?

2个回答

1

它不显示毫秒,但你可以尝试这个:

Time.at(1291132740128/1000.0).xmlschema
 => "2010-11-30T16:59:00+01:00"

1

1) 在 strftime 中使用 %3N 可以得到毫秒:

Time.at(1291132740128/1000.0).strftime("%Y-%m-%dT%H:%M:%S.%3N-%Z")
=> "2010-11-30T16:59:00.128-CET"

2) 这不是自动的吗?

编辑:如果用户关闭了JS会发生什么?我认为这取决于使用情况。


谢谢!我想知道有多少百分比的点击是由没有启用JavaScript的浏览器完成的...可能非常少。 - ma11hew28
无论如何,也要计算搜索机器人。例如,如果是博客文章编写的时间,我肯定会尽量保持它在HTML中可读,而不是JS。 - Mladen Jablanović

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接