使用UTC而不是普通javascript中的本地时区获取日期对象



我正在将日期时间上传到动态表单上的字段,该表单需要接收UTC日期时间。如果我这样做:

new Date(new Date().toISOString()) 

如果我console.log日期显示为:Fri Dec 18 2020 14:27:39 GMT-0500 (Eastern Standard Time)

我希望对象打印为UTC时间,UTC指定为时区,否则表单(需要日期对象(将继续上传为EST时间。

使用Date.UTC

const utcDate1=新日期(Date.UTC(96,1,2,3,4,5((;

文档

编辑:正如另一位用户所提到的,您必须使用Date.UTC.

var date = new Date(Date())
var utcDate = date.toUTCString();
console.log(utcDate)

Date对象与ECMAScript epoch 1970-01-01T00:00:00Z之间的偏移量(以毫秒为单位(。它们没有时区。当您字符串化对象时,您会得到一个时间戳,该时间戳取决于所使用的方法。

大多数方法(例如toString(使用时区和偏移量的主机设置,并根据这些设置生成时间戳。

如果您想要具有零偏移的符合ISO 8601的字符串,请根据您想要的格式使用toISOStringtoUTCString

let d = new Date();
console.log(`local time : ${d.toString()}`);
console.log(`toISOString: ${d.toISOString()}`);
console.log(`toUTCString: ${d.toUTCString()}`);

请参阅如何格式化JavaScript日期。

在您的代码中,表达式为:

new Date(new Date().toISOString()) 

首先为当前时刻创建一个Date对象,然后根据toISOString方法生成一个时间戳。然后将其解析回Date对象,因此结果与以下内容相同:

new Date();

相关内容

  • 没有找到相关文章

最新更新