我怎样才能得到自从在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);