正如标题所要求的那样,Date.toString()
(更准确地说,Date.toTimeString()
)的输出在所有浏览器中始终采用相同的格式吗?
我问这个,因为EMCAScript specification表示“字符串的内容依赖于实现”。
我需要确保这一点,因为我需要通过插入HTML span
元素来格式化字符串,如下所示:
(new Date()).toTimeString().replace(" GMT", "<span id='offset'> GMT") + '</span>' );
这会产生(在Google Chrome v28.0.1500.95中)类似
的内容 18:19:26<span id="offset"> GMT-0700 (Pacific Daylight Time)</span>
然后我可以用CSS设置样式。
有关更好地设计输出样式的建议也很棒!
答案 0 :(得分:3)
简而言之,不,toString并不总是输出相同的格式。
new Date().toString()
打印
我知道这些是较旧的浏览器版本,但它表明它依赖于浏览器。
然而,当使用toTimeString()
时,它似乎始终以小时:分钟:秒[空格]开始......
因此,您可以根据第一个[空格]将字符串拆分为2个部分:
然后用你的跨度
包裹第二部分Moment执行日期的字符串格式化,但它也不能很好地处理您请求的偏移字符串,因为它取决于toString()方法。
我希望有帮助
答案 1 :(得分:-1)
Moment.js是一个很好的库,用于格式化JS中的日期。 https://github.com/moment/moment
否则是的,你最终会自己解析它,因为浏览器会以不同的方式呈现它。