首页 > 解决方案 > getDate 返回当前时间的第二天

问题描述

这是由于我的笔记本电脑上的时区设置还是更复杂的原因?

当前时间

var dateObj = new Date();

var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();
var week = 7;
console.log ('date ',dateObj,' day is ',day);

输出

> date  Mon Jan 14 2019 23:05:35 GMT-0500 (Eastern Standard Time)  day is  15

编辑: new Date() 创建的时间(Mon Jan 14 2019 23:05:35 GMT-0500)实际上是我所追求的正确时间。

在考虑了我在评论中读到的信息之后,似乎我需要减去每小时的变化( - 5 )来获得 EST,这似乎是我所追求的。

标签: javascript

解决方案


看来我需要减去每小时的变化( - 5 )才能得到 EST

减法5不是一个好主意,因为它不考虑夏令时。

我建议使用toLocaleString()是安全的。

var dateObj = new Date();

//Output as UTC
var utc = { timeZone: "UTC" };
console.log(dateObj.toLocaleString("en-US", utc));

//Output as EST
var est = { timeZone: "America/New_York" };
console.log(dateObj.toLocaleString("en-US", est));


推荐阅读