Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 日期(dateString)构造函数不一致? a=新日期('09-01-2013') //2013年9月1日星期日00:00:00 GMT-0400(美国东部时间) b=新日期('2013-09-01') //2013年8月31日星期六20:00:00 GMT-0400(美国东部时间) b_Javascript_Node.js_Date - Fatal编程技术网

Javascript 日期(dateString)构造函数不一致? a=新日期('09-01-2013') //2013年9月1日星期日00:00:00 GMT-0400(美国东部时间) b=新日期('2013-09-01') //2013年8月31日星期六20:00:00 GMT-0400(美国东部时间) b

Javascript 日期(dateString)构造函数不一致? a=新日期('09-01-2013') //2013年9月1日星期日00:00:00 GMT-0400(美国东部时间) b=新日期('2013-09-01') //2013年8月31日星期六20:00:00 GMT-0400(美国东部时间) b,javascript,node.js,date,Javascript,Node.js,Date,我在Node.js repl,v0.10.12中做了这件事 为什么日期根据日期字符串的形式不同 我看不出这与时区有什么关系,因为这两个日期都显示在本地时区,而且它们的值显然不相等。问题在于新日期('09-01-2013')和新日期('2013-09-01')使用不同的格式/标准,因此解析方式也不同 新日期('09-01-2013')按照您的预期进行解析,结果为午夜时间(在您的本地时区)。但是,新日期('2013-09-01')在UTC午夜被解析为ISO-8601日期,UTC午夜在显示时转换为您的

我在Node.js repl,v0.10.12中做了这件事

为什么日期根据日期字符串的形式不同


我看不出这与时区有什么关系,因为这两个日期都显示在本地时区,而且它们的值显然不相等。

问题在于
新日期('09-01-2013')
新日期('2013-09-01')
使用不同的格式/标准,因此解析方式也不同

新日期('09-01-2013')
按照您的预期进行解析,结果为午夜时间(在您的本地时区)。但是,
新日期('2013-09-01')
在UTC午夜被解析为ISO-8601日期,UTC午夜在显示时转换为您的本地时区(在本例中,EDT反映在
20:00:00
中,相差4小时)


结论:使用
YYYY/MM/DD
以避免头痛。

ctor应以a格式接收(如果正确或不正确解析,则应将任何其他格式视为方便)
a = new Date('09-01-2013')
//Sun Sep 01 2013 00:00:00 GMT-0400 (EDT)

b = new Date('2013-09-01')
//Sat Aug 31 2013 20:00:00 GMT-0400 (EDT)

b < a
//true