我怎样才能在Javascript中获得自纪元以来的秒数?

时间:2012-02-26 19:02:53

标签: javascript datetime

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

有没有办法在JavaScript中查找自Epoch以来的秒数?

10 个答案:

答案 0 :(得分:206)

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);

答案 1 :(得分:54)

试试这个:

new Date().getTime() / 1000

您可能希望使用Math.floor()Math.round()来减少毫秒分数。

答案 2 :(得分:34)

你想要自纪元以来的秒数

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

示例使用

foo = seconds_since_epoch();

答案 3 :(得分:10)

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

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

如果你想time_in_seconds是一个整数,你有两个选择:

<强>一个。如果您想与C样式截断一致:

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

<强>湾如果你想要保持整数除法的数学定义,请发言。 (Python的整数除法就是这样)。

time_in_seconds_int = Math.floor(time_in_seconds);

答案 4 :(得分:7)

如果您希望仅秒作为整数,而小数仍然表示毫秒仍然附加,请使用:

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

答案 5 :(得分:5)

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

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

如果您想要秒,则将其除以1000:

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

答案 6 :(得分:4)

我的首选方式:

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

有关+ jump down the rabbit hole

的详细信息

答案 7 :(得分:0)

最简单的版本:

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

答案 8 :(得分:0)

在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)

答案 9 :(得分:0)

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);