我正在尝试将 http 请求数据转换为我需要的正确日期格式。
我来自一家公司的 http 请求数据返回如下数据
2015-03-11, 2015-05-13, 2015-11-21...etc.
我的代码。
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.`
我需要能够转换2015-03-11
至March, 11, 2015
。有没有正确的方法来解决这个问题?
非常感谢!
最佳答案
问题源于 JavaScript Date 实例包含时间部分的事实,以及像您这样的 ISO 日期被解释为 UTC 的相关事实。如果您位于西欧西部,那么您的计算机所在的时区使得 UTC 2015 年 3 月 11 日午夜成为您所在时区 2015 年 3 月 10 日的某个时间。
有几种方法可以解决这个问题;这是一个:
var utcdate = new Date("2015-03-11");
var local = new Date(utcdate.getUTCFullYear(), utcdate.getUTCMonth(), utcdate.getUTCDate());
这将使“本地”日期与指示的原始日期字符串相同。
正如链接的重复问题的答案中提到的,您还可以在实例化日期之前操作日期字符串。 最好的事情是确保您的服务器生成格式正确的日期。
关于javascript - 如何在我的情况下设置日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286834/