Javascript - 将Unix时间格式转换为yyyy-mm-dd日期格式

4
我需要帮助将Unix时间戳转换为特定格式。这是我目前正在使用的代码:
var date = "2014-05-01";
var indexPie = Date.parse(date);

我需要以yyyy-mm-dd格式的indexPie。我不理解的是,当日志记录时。
var newDate = new Date(indexPie);

结果如下:
Wed Apr 30 2014 18:00:00 GMT-0600 (Mountain Daylight Time)

应该是这样的:

Thur May 01 2014 18:00:00 GMT-0600 (Mountain Daylight Time)

为什么 new Date(indexPie) 的结果是 Apr 30,如何得到正确的 yyyy-mm-dd 格式?
如果您有任何建议,请告诉我。谢谢。

因为 Wed Apr 30 2014 18:00:00 + 06 h 等于 Thur May 01 2014 00:00:00 GMT - dfsq
我明白了...抱歉,我模拟了一些数据。 - user3845941
也许与您的系统时间有关...对我来说它运行良好,这是结果Thu May 01 2014 01:00:00 GMT+0100 (GMT (heure d’été)) - Khalid
只需在日期中添加时间即可。 - Dylan
我还应该说一下,解析后的日期(indexPie)是从API返回的。因此,在接收数据之前,我无法更改日期或时间。 - user3845941
显示剩余3条评论
2个回答

5

我通过以下方法解决了这个问题:

var date = new Date(indexPie);
var year = date.getUTCFullYear();
var month = date.getUTCMonth() + 1;
var day = date.getUTCDate();
var dateString = year + "-" + month + "-" + day;

0

你期望date变量中的值:"2014-05-01"会被解析为本地时区,但实际上它是以UTC时间解析。

你可以像这样将UTC时间转换为本地时区:

var newDate = new Date(indexPie + new Date().getTimezoneOffset() * 60000);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接