在 Javascript 中如何获得自纪元以来的秒数?

在 Unix 上,我可以运行 date '+%s'来获得自新纪元以来的秒数。但我需要在浏览器前端查询,而不是后端。

有没有办法在 JavaScript 中查找 Epoch 之后的秒数?

137386 次浏览
var seconds = new Date() / 1000;

或者,换个不那么粗俗的说法:

var d = new Date();
var seconds = d.getTime() / 1000;

不要忘记 Math.floor()Math.round()四舍五入到最接近的整数,否则你可能会得到一个非常奇怪的小数,你不想要:

var d = new Date();
var seconds = Math.round(d.getTime() / 1000);

试试这个:

new Date().getTime() / 1000

您可能需要使用 Math.floor()Math.round()来切割毫秒级数。

您可以创建一个 Date 对象(其中包含当前时间) ,然后调用 getTime()来获取自时代以来的 ms。

var ms = new Date().getTime();

如果你想要第二个,那么除以1000:

var sec = new Date().getTime() / 1000;

我更喜欢的方式:

var msEpoch = (+new Date());
var sEpoch = (+new Date()) / 1000;

了解更多关于 + 跳进兔子洞的信息。

上述解决方案使用实例属性。另一种方法是使用类属性 Date.now:

var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;

如果你想让 time _ in _ second 成为一个整数,你有两个选择:

如果你想与 C 风格截断保持一致:

time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);

B.如果你想知道整数除法的数学定义,只需要发言。(Python 的整数除法是这样做的)。

time_in_seconds_int = Math.floor(time_in_seconds);

你从一开始就想要第二次

function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }

示例使用

foo = seconds_since_epoch();

如果您希望 只有几秒钟作为一个整数,而不附带表示毫秒的小数,请使用以下方法:

var seconds = Math.floor(new Date() / 1000);

最简单的说法是:

Math.floor(Date.now() / 1000)

在 chrome 中,你可以用 F12打开控制台并测试以下代码:

var date = new Date().getTime()
console.debug('date: ' + date);


if (Date.now() < date)
console.debug('ko');
else
console.debug('ok');

Https://www.eovao.com/en/a/javascript%20date/1/how-to-obtain-current-date-in-milliseconds-by-javascript-(epoch)

EPOCH means time from 01 January 1970
var date = new Date();
Following line will return the number of milliseconds from 01 Jaunary 1970
var ms = date.getTime();
Following line will convert milliseconds to seconds
var seconds = Math.floor(ms/1000);
console.log("Seconds since epoch =",seconds);