繁体   English   中英

如何以类似于 javascript 中的 new Date().getTime() 的毫秒格式获取 UTC 日期?

[英]How to get UTC date in milliseconds format similiar to new Date().getTime() in javascript?

为了解决部署项目时出现的时区问题,我需要将当前毫秒格式的日期转换为相应的毫秒格式的UTC日期。我该如何解决?

在尝试了不同的方法之后,我发现这是最有效和最有效的解决方案。

       var d = new Date(); //d can be any date we need to convert.
       var millisec= d.getTime()+ (d.getTimezoneOffset() * 60000);

getTimeZoneOffset() 以分钟为单位返回偏移时间

编辑

实际上,上面的代码偏移量添加到本地日期(而不是减去),并且我的服务器(UTC)允许在服务器上取回本地时间。

我需要服务器中的本地时间,正如我后来意识到的那样,我们使用的 API 数据中包含本地时间。

因此,回到最初的问题,将本地转换为 UTC 的可能解决方案是:

       var d = new Date(); //d can be any date we need to convert.
       var millisec= d.getTime() - (d.getTimezoneOffset() * 60000);

在后来的另一个项目中,我使用以下字符串形式的日期:

一种。 从本地转换为 UTC(同时发送到服务器):

new Date().toUTCString()

转换回本地(同时从服务器获取数据到网络:

date.toLocaleDateString("en-AU", {
                weekday: 'short', year: 'numeric', month: 'short', day: 'numeric',
                hour12: false, hour: 'numeric', minute: 'numeric', second: 'numeric'
            });

Javascript 有一个功能, getTime()

function myFunction() {
    var d = new Date();
    var n = d.getTime();
    return n;
}

这是一个很大的“蠕虫罐”,因为时区在一年中进入和离开夏令时,然后有时会发生变化。

如果您不介意您的时间可能有 1 小时的错误,那么最简单的方法就是添加或减去您拥有的时区与 UTC 之间的毫秒数差异。 虽然我建议你看看moment-timezone库,但要做到正确: http : //momentjs.com/timezone/

  • 在这里,我提供了一种最简单的解决方案,将我们的本地时间转换为 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 = 新日期(1608549196000);
// 202000 年 12 月 22 日星期二:13:16 GMT+1300(新西兰夏令时)

谢谢!!

var myDate = new Date(); 
var utcDate = myDate.toUTCString();
var milliSec = utcDate.getMilliseconds();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM