Date.toString()的输出是否始终采用相同的格式?

Alf*_*ing 8 javascript datetime date

正如标题所要求的那样,在所有浏览器中,Date.toString()(更确切地说Date.toTimeString())的输出是否始终采用相同的格式?

我问这个,因为EMCAScript规范说"String的内容是依赖于实现的".


我需要确保这一点,因为我需要通过插入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设置样式.


建议更好的方式来输出样式也很棒!

Pos*_*ing 5

简而言之,不,toString 并不总是输出相同的格式。

new Date().toString() 
Run Code Online (Sandbox Code Playgroud)

印刷

  • Firefox 10 中的“2012 年 2 月 11 日星期六 02:15:10 GMT+0100”
  • Chrome 16 中的“2012 年 2 月 11 日星期六 02:18:29 GMT+0100(西欧标准时间)”
  • Internet Explorer 9 中的“周六 2 月 11 日 02:18:59 UTC+0100 2012”

我知道这些是较旧的浏览器版本,但它表明它依赖于浏览器。

但是,当使用toTimeString()它时,它总是以小时:分钟:秒[空格]...开头。

因此,您可以改为根据第一个 [空格] 将字符串分成 2 个部分:

indexOf(" ")

然后用你的跨度包裹第二部分

Moment对日期进行一些字符串格式化,但它也不能很好地处理您请求的偏移字符串,因为它取决于 toString() 方法。

我希望有帮助