如何将当前时间转换为GMT时间?

How do I convert current time to GMT?

本文关键字:时间 转换 GMT      更新时间:2023-09-26

我需要获得00:00:00 AM GMT (12am)的值,然后将其转换为unix时间。我应该如何在javascript中做到这一点?是否存在比服务器时间更可靠的外部数据源?我将在服务器上的节点上做这个。

谢谢!

编辑:这就是我所做的。你觉得这有什么问题吗?再次感谢!
date = new Date()
start_date = Date.UTC(date.getFullYear(),date.getUTCMonth(),date.getUTCDate()) / 1000

你的方法是正确的,但是你有一个讨厌的错误在那里,你是混合本地年与UTC日期和月,几个小时左右的新年,取决于时区,本地和UTC年是不同的,所以如果你使用错误的年份你的结果将是整整一年。

你的问题有两种解释。或者您想要基于本地时间的结果,因此任何给定时间的结果将取决于时区。或者你想要一个基于UTC时间的结果,无论时区如何,结果都是相同的,但有时对某些用户来说,结果将不是本地日期。 当地时间:

date = new Date()
start_date = Date.UTC(date.getFullYear(),date.getMonth(),date.getDate()) / 1000
UTC:

date = new Date()
start_date = Date.UTC(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate()) / 1000

这是一个很好的开始:

var now = new Date();
var then = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var epoch = then.getTime();

不确定你想对DST做什么,所以你需要看看:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

编辑:允许不同的时区:

var off = now.getTimezoneOffset() * 60000; /* tz is in mins so multiply to ms */
var midnight = new Date(then.getTime() - off);
var epoch = midnight.getTime();

这些链接有一些很好的答案。我喜欢epochconverter.com,它为我节省了很多时间。答案的本质是使用Javascript Date对象来处理转换日期的所有麻烦。这通常是你在任何语言中都应该做的。如果你手工操作日期,你会出错的

http://www.epochconverter.com/programming/javascripthttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

这是我最后为其他人做的看这个问题。

date = new Date()
start_date = Date.UTC(date.getFullYear(),date.getUTCMonth(),date.getUTCDate()) / 1000