Javascript日期表现不同

时间:2014-08-20 02:04:34

标签: javascript google-chrome date

我正在Chrome开发者控制台中执行以下操作,

var d = new Date("2010-03-20"); d
Fri Mar 19 2010 17:00:00 GMT-0700 (PDT)
var d = new Date("2010/03/20"); d
Sat Mar 20 2010 00:00:00 GMT-0700 (PDT)
var d = new Date("2010-3-20"); d
Sat Mar 20 2010 00:00:00 GMT-0700 (PDT)
var d = new Date("2010.3.20"); d
Sat Mar 20 2010 00:00:00 GMT-0700 (PDT)
var d = new Date("2010.03.20"); d
Sat Mar 20 2010 00:00:00 GMT-0700 (PDT)

我的问题是为什么#34; 2010-03-20" 3月19日给哪里?

如果我做了getUTCDate(),我得到了20,但为什么它只在2010-03-20有所不同。它是javascript日期中的活动错误吗?

1 个答案:

答案 0 :(得分:2)

这不是一个错误,它很尴尬,但intended

快速回答是new Date("2010-03-20")被解释为ISO-8601日期,默认情况下以UTC(无时区)表示。

使用当前客户端时区信息读取任何其他不符合YYYY-mm-dd格式的日期字符串('。'而不是' - ','3'而不是'03')。

除此之外,Date.prototype.toString()根据客户端时区打印日期时间。