如何以毫秒格式获取类似于 javascript 中的 new Date().getTime() 的 UTC 日期?
How to get UTC date in milliseconds format similiar to new Date().getTime() in javascript?
为了解决部署项目时出现的时区问题,我需要将我当前的毫秒格式日期转换为相应的 milliseconds.How 中的 UTC 日期,我可以解决吗?
Javascript 有一个功能,getTime():
function myFunction() {
var d = new Date();
var n = d.getTime();
return n;
}
这是一个很大的问题 "can of worms",因为时区在一年中进入和离开夏令时,然后有时会有所不同。
如果您不介意您的时间可能有 1 小时的误差,那么最简单的做法是加上或减去您的时区与 UTC 之间的毫秒数差异。为了正确处理,我建议您查看时刻时区库:http://momentjs.com/timezone/
var myDate = new Date();
var utcDate = myDate.toUTCString();
var milliSec = utcDate.getMilliseconds();
在尝试了不同的方法之后,这是我发现的最有效和可行的解决方案。
var d = new Date(); //d can be any date we need to convert.
var millisec= d.getTime()+ (d.getTimezoneOffset() * 60000);
getTimeZoneOffset() returns 以分钟为单位的偏移时间
编辑:
实际上上面的代码 添加 本地日期的偏移量(而不是减去),我的服务器(UTC)允许取回服务器上的本地时间。
我需要服务器中的本地时间,正如我后来意识到的那样,我们使用的 API 数据中有本地时间。
所以回到最初的问题,将本地转换为 UTC 的可能解决方案是:
var d = new Date(); //d can be any date we need to convert.
var millisec= d.getTime() - (d.getTimezoneOffset() * 60000);
In another project later I used the below for date in string form:
一个。从本地转换为 UTC(同时发送到服务器):
new Date().toUTCString()
b。转换回本地(同时从服务器获取数据到网络:
date.toLocaleDateString("en-AU", {
weekday: 'short', year: 'numeric', month: 'short', day: 'numeric',
hour12: false, hour: 'numeric', minute: 'numeric', second: 'numeric'
});
- 在这里,我提供了一种最简单的方法来转换我们的本地
保存在服务器中的 UTC 毫秒时间。
const utcDate = new Date().toUTCString();
// Mon, 21 Dec 2020 11:13:16 GMT
- 这会将日期打印为如上所示的 UTC 字符串。你可以转换它
使用
作为 UTC 毫秒
const sendToServer = Date.parse(utcDate); //1608549196000
- 您可以使用
将 UTC 毫秒转换为本地时间
const myLocalDate = new Date(1608549196000);
// Tue Dec 22 202000:13:16 GMT+1300 (New Zealand Daylight Time)
谢谢!!
为了解决部署项目时出现的时区问题,我需要将我当前的毫秒格式日期转换为相应的 milliseconds.How 中的 UTC 日期,我可以解决吗?
Javascript 有一个功能,getTime():
function myFunction() {
var d = new Date();
var n = d.getTime();
return n;
}
这是一个很大的问题 "can of worms",因为时区在一年中进入和离开夏令时,然后有时会有所不同。
如果您不介意您的时间可能有 1 小时的误差,那么最简单的做法是加上或减去您的时区与 UTC 之间的毫秒数差异。为了正确处理,我建议您查看时刻时区库:http://momentjs.com/timezone/
var myDate = new Date();
var utcDate = myDate.toUTCString();
var milliSec = utcDate.getMilliseconds();
在尝试了不同的方法之后,这是我发现的最有效和可行的解决方案。
var d = new Date(); //d can be any date we need to convert.
var millisec= d.getTime()+ (d.getTimezoneOffset() * 60000);
getTimeZoneOffset() returns 以分钟为单位的偏移时间
编辑:
实际上上面的代码 添加 本地日期的偏移量(而不是减去),我的服务器(UTC)允许取回服务器上的本地时间。
我需要服务器中的本地时间,正如我后来意识到的那样,我们使用的 API 数据中有本地时间。
所以回到最初的问题,将本地转换为 UTC 的可能解决方案是:
var d = new Date(); //d can be any date we need to convert.
var millisec= d.getTime() - (d.getTimezoneOffset() * 60000);
In another project later I used the below for date in string form:
一个。从本地转换为 UTC(同时发送到服务器):
new Date().toUTCString()
b。转换回本地(同时从服务器获取数据到网络:
date.toLocaleDateString("en-AU", {
weekday: 'short', year: 'numeric', month: 'short', day: 'numeric',
hour12: false, hour: 'numeric', minute: 'numeric', second: 'numeric'
});
- 在这里,我提供了一种最简单的方法来转换我们的本地 保存在服务器中的 UTC 毫秒时间。
const utcDate = new Date().toUTCString(); // Mon, 21 Dec 2020 11:13:16 GMT
- 这会将日期打印为如上所示的 UTC 字符串。你可以转换它 使用 作为 UTC 毫秒
const sendToServer = Date.parse(utcDate); //1608549196000
- 您可以使用 将 UTC 毫秒转换为本地时间
const myLocalDate = new Date(1608549196000);
// Tue Dec 22 202000:13:16 GMT+1300 (New Zealand Daylight Time)
谢谢!!