我正在将日期时间上传到动态表单上的字段,该表单需要接收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的字符串,请根据您想要的格式使用toISOString或toUTCString:
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();