我怎样才能得到自从在epoch在JavaScript的秒?

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

有没有一种方法来找出自从Epoch在JavaScript以来秒?

 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()来减less毫秒级分。

自从时代以来,你想要秒

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

示例使用

 foo = seconds_since_epoch(); 

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

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

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

一个。 如果你想与C风格截断一致:

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

如果你只想把整数除数的math定义保存下来,只要发言。 (Python的整数除法是这样的)。

 time_in_seconds_int = Math.floor(time_in_seconds); 

你可以创build一个Date对象(它将包含当前时间),然后调用getTime()来获得从epoch开始的ms。

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

如果你想要秒,然后除以1000:

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

我喜欢的方式:

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

有关+ 跳下兔子洞的更多信息。

如果您只需要秒数作为一个整数,而不需要代表毫秒的小数位,请使用以下命令:

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