我在javascript中选择了一些日期和时间,然后想将它存储在服务器(.NET)上。日期应该是从当前时刻开始的(因此它们不会在1970年之前)。
在这里阅读了有关SO的主题后,我了解到最好将日期存储为字符串,人们建议使用Date.prototype.toISOString()
或Date.prototype.toUTCString()
。
我已经读过在IE 7中没有toISOString()
。我想知道其他差异,我应该选择一个或另一个函数。
谢谢!
答案 0 :(得分:29)
两者都不同。 ISO是标准格式时间。 UTC是世界规定时钟和时间的主要时间标准。 ISO还支持其ms
格式。
因此,如果要将数据发送到服务器,请发送ISO,因为ISO是标准格式:
var date = new Date();
sendDate(date.toISOString());
您还可以在IE7 polyfill中使用toISOString
。
答案 1 :(得分:22)
我希望它对你有所帮助。
摘要关于toISOString()
: -
toISOString()
方法返回ISO格式的字符串(ISO 8601扩展格式),可以描述如下:YYYY-MM-DDTHH:mm:ss.sssZ
。时区始终为UTC,后缀为“Z”。
有关toISOString()
的详细信息,请参阅以下链接。
摘要关于toUTCString()
: -
toUTCString()
方法使用UTC时区将日期转换为字符串。
有关toUTCString()
答案 2 :(得分:1)
它们提供几乎相同的信息,但格式不同。这是我在机器上得到的。
new Date().toISOString()
"2019-10-11T18:56:08.984Z"
new Date().toUTCString()
"Fri, 11 Oct 2019 18:56:08 GMT"
.toISOString()
比.toUTCString()
更常见是您想要的两个原因。
尽管.toUTCString()
对于非计算机人士来说更容易识别,但将其作为字符串进行排序不会给出日期时间顺序。
相反,.toISOString()
的“ 2019-10-11T18:56:08.984Z”可以方便地作为字符串进行排序。
.toISOString()
提供毫秒值,而.toUTCString()
不提供毫秒值。