栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript为什么Date.parse给出不正确的结果?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript为什么Date.parse给出不正确的结果?

在第5版规范发布之前,该Date.parse方法完全依赖于实现(除后者返回数字而不是a之外,其他方法new Date(string)等效)。在第5版规范中,添加了该要求以支持简化的(并且略有错误) ISO-8601(另请参见Javascript中有效的日期时间字符串是什么?)。但是除此之外,除了必须接受任何Date#toString输出(不说那是什么)之外,对什么/ 应该接受没有任何要求。

Date.parse(string)DateDate.parsenew Date(string)

从ECMAscript 2017(版本8)开始,要求实现解析Date#toString和Date#toUTCString的输出,但未指定这些字符串的格式。

从ECMAscript 2019(版本9)开始,

Date#toString
Date#toUTCString
的格式分别指定为:

  • ddd MMM DD YYYY HH:mm:ss ZZ [(时区名称)]
  • 例如Tue Jul 10 2018 18:39:58 GMT + 0530(IST)
  • ddd,DD MMM YYYY HH:mm:ss Z
    例如 2019年7月10日星期二13:09:58 GMT
    提供了Date.parse应该在新的实现中可靠地解析的另外2种格式(请注意,支持并不普遍,并且不兼容的实现将在一段时间内继续使用)。

我建议手动解析日期字符串,并将Date构造函数与年,月和日参数一起使用,以避免产生歧义:

// parse a date in yyyy-mm-dd formatfunction parseDate(input) {  var parts = input.split('-');  // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])  return new Date(parts[0], parts[1]-1, parts[2]); // Note: months are 0-based}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390599.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号