1.时区问题
对于javascript中的Date函数,使用new Date()和new Date(dateString)方式构造的日期会转化成本地的日期和时间。
比如,当我PC的时区设置为美国和加拿大中部时区时,new Date("2015-02-18")的结果如下:
Tue Feb 17 2015 19:00:00 GMT-0500 (Eastern Standard Time)
这 是由于美国和加拿大中部时区的时间比世界时间( 格林威治皇家天文台时间)慢了5个小时的缘故。
如果把PC的时区设置成中国北京时区,new Date("2015-02-18")的结果如下:Wed Feb 18 2015 08:00:00 GMT+0800 (China Standard Time)
这是由于北京时区比世界时快了8个小时的缘故。
所以要在页面上正确的显示日期,那就的转化(当然如果你的时区只有中国那么不转也无所谓了,因为如果你只需要精确到某天的话,在中国把“2015-02-18"这样的日期转化成本地日期的时候日期是不会变的,只是多了8个小时而已,但是还是同一天)
2.解决方案
var localDate = new Date(dateString);
var localTime = localDate.getTime();
var localOffset = localDate.getTimezoneOffset()*60*1000;
new Date(localTime + localOffset);