如何在我的情况下设置日期格式

Fly*_*Cat 0 javascript date

我试图将http请求数据转换为我需要的正确日期格式.

我公司的http请求数据返回的数据如

2015-03-11, 2015-05-13, 2015-11-21...etc.
Run Code Online (Sandbox Code Playgroud)

我的代码.

var day1 = '2015-03-11'; //return from http request
var day2 = '2015-05-13'; //return from http request

var date = new Date(day1) -> 
//time will be off 1 day for some reason 
//because javascript can't recognize 03 and it is a string.`
Run Code Online (Sandbox Code Playgroud)

我需要能够转换2015-03-11March, 11, 2015.有没有正确的方法来解决这个问题?

非常感谢!

Poi*_*nty 5

问题源于JavaScript Date实例包含一个时间部分的事实,以及与您的ISO日期相似的相关事实被解释为UTC.如果您位于西欧以西,那么您的计算机所处的时区将使2015年3月11日的午夜时间段在2015年3月10日的某个时间区域内.

有几种方法可以解决这个问题; 这是一个:

var utcdate = new Date("2015-03-11");
var local = new Date(utcdate.getUTCFullYear(), utcdate.getUTCMonth(), utcdate.getUTCDate());
Run Code Online (Sandbox Code Playgroud)

这将使"本地"日期与指示的原始日期字符串相同.

如链接重复问题的答案中所述,您还可以在实例化日期之前操纵日期字符串.的最好的事情是要确保你的服务器生产设备精良,日期格式.