javascript
JS中Date.parse()和Date.UTC()返回值不一致
Date.parse()?方法解析一個表示某個日期的字符串,并返回從1970-1-1 00:00:00 UTC 到該日期對象(該日期對象的UTC時間)的毫秒數,如果該字符串無法識別,或者一些情況下,包含了不合法的日期數值(如:2015-02-31),則返回值為NaN。
語法
顯示調用:
Date.parse(dateString)隱式調用:
new Date(dateString)parse?方法接受一個表示時間的字符串,返回相應的時間值。該方法可以接受符合 RFC2822 / IETF 日期語法 (RFC2822 Section 3.3) 的字符串,如 "Mon, 25 Dec 1995 13:30:00 GMT"。該方法能夠理解美國大陸時區的縮寫,但是為了更通用,應該使用時區偏移,如 "Mon, 25 Dec 1995 13:30:00 +0430" (格林威治的子午線向東偏移4小時30分鐘)。如果沒有指定時區,默認使用本地時區。
GMT 和 UTC 被看作相等。 如果?RFC2822 Section 3.3?格式中不包含時區信息時,會以本地時區來解析日期字符串。
由于在解析日期字符串時存在偏差會導致結果不一致,因此推薦始終手動解析日期字符串,特別是不同的ECMAScript實現會把諸如“2015-10-12 12:00:00”的字符串解析為NaN,UTC或者本地時間。
?
所以,若要返回值一致,最好在Date.parse()參數中指明時區,合適的例子如下:
Date.parse("Wed, 09 Aug 1995 00:00:00"); 在時區 GMT-0300 中返回 807937200000 ,在其他時區中返回另外的值,因為沒有時區標志并且不是 ISO 格式,所以作為本地時區處理。Date.parse("Wed, 09 Aug 1995 00:00:00 GMT"); 因為指定了時區 GMT (UTC),所以不管本地時區如何,總是返回 807926400000 。?
?轉載于:https://www.cnblogs.com/OldJack/p/8688894.html
總結
以上是生活随笔為你收集整理的JS中Date.parse()和Date.UTC()返回值不一致的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 月赛 SX_ACM 惨痛教训
- 下一篇: 懒加载与预加载