getDate返回当前时间的第二天

时间:2019-01-15 04:06:03

标签: javascript

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

当前时间

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

edit:新Date()创建的时间( 2019年1月14日星期一23:05:35 GMT-0500 )实际上是我所追求的正确时间。

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

2 个答案:

答案 0 :(得分:2)

  

似乎我需要减去小时变化量(-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));

答案 1 :(得分:0)

您需要使时区保持一致。更改此:

console.log ('date ',dateObj,' day is ',day);

对此:

console.log ('date ',dateObj.getUTCDate(),' day is ',day);

它将起作用:

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.getUTCDate(), ' day is ', day);