Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Date.toString()的输出是否始终采用相同的格式?_Javascript_Date_Datetime - Fatal编程技术网

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

Javascript Date.toString()的输出是否始终采用相同的格式?,javascript,date,datetime,Javascript,Date,Datetime,正如标题所问,在所有浏览器中,Date.toString()(更准确地说,Date.toTimeString())的输出是否总是采用相同的格式 我这样问是因为声明“字符串的内容依赖于实现” 我需要确保这一点,因为我需要通过插入HTMLspan元素来格式化字符串,如下所示: (新日期()).toTimeString().replace(“GMT”、“GMT”)+“”) 这将产生(在Google Chrome v28.0.1500.95中)类似 18:19:26 GMT-0700(太平洋夏令时)

正如标题所问,在所有浏览器中,
Date.toString()
(更准确地说,
Date.toTimeString()
)的输出是否总是采用相同的格式

我这样问是因为声明“字符串的内容依赖于实现”


我需要确保这一点,因为我需要通过插入HTML
span
元素来格式化字符串,如下所示:

(新日期()).toTimeString().replace(“GMT”、“GMT”)+“”)

这将产生(在Google Chrome v28.0.1500.95中)类似

18:19:26 GMT-0700(太平洋夏令时)

然后我可以用CSS来设计它



为更好的方式风格输出的建议也将是伟大的

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

new Date().toString() 
印刷品

  • Firefox 10中的“Sat Feb 11 2012 02:15:10 GMT+0100”
  • “2012年2月11日星期六02:18:29 GMT+0100(西欧标准时间)”Chrome 16
  • Internet Explorer 9中的“Sat Feb 11 02:18:59 UTC+0100 2012”
我知道这些是较旧的浏览器版本,但这表明它依赖于浏览器

但是,当使用
toTimeString()
时,它似乎总是以小时:分钟:秒[空格]开始

因此,您可以根据第一个[space]将字符串拆分为两部分:

然后用你的跨距包住第二部分

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


我希望这有助于

Moment.js是一个很好的用js格式化日期的库


否则是的,您将自己解析它,因为浏览器呈现的方式不同。

您已经得到了答案!正如您所提到的,它依赖于实现。因此,我建议您不要根据当前实现的结果编写代码。虽然我回答这个问题已经晚了,但我会留下我的评论,以方便其他人在这个问题上寻求答案:-规范对此很清楚。它的内容是“toString()中字符串的内容取决于实现”(请参阅:ecma international.org/ecma-262/5.1/#sec-15.9.5.2),如果必须对日期进行字符串化,则更好的选择是使用toISOString(),根据规范,该字符串的格式严格为“YYYY-MM-DDTHH:MM:ss.sssZ”。(请参阅:ecma international.org/ecma-262/5.1/#sec-15.9.5.43)感谢您的深入回答。我可能会用JavaScript创建自己的日期格式化程序;js有点太重(有些功能我可能不会使用)。规范对此很清楚。它的内容是“toString()中的字符串内容取决于实现”(请参阅:)如果必须对日期进行字符串化,则更好的选择是使用toISOString(),根据规范,toISOString()的格式严格为“YYYY-MM-DDTHH:MM:ss.sssZ”。(参考:)