这是由于笔记本电脑上的时区设置还是更复杂?
当前时间
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,这似乎是我所追求的。
答案 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);