在Unix上,我可以运行date '+%s'
以获取自纪元以来的秒数。但是我需要在浏览器前端而不是后端进行查询。
有没有办法找出自JavaScript中的Epoch以来的秒数?
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()
减少毫秒分数。
您想从纪元起数秒
function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }
示例使用
foo = seconds_since_epoch();
以上解决方案使用实例属性。另一种方法是使用class属性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);
b。如果您只想保留整数除法的数学定义,请发言。(Python的整数除法可以做到这一点)。
time_in_seconds_int = Math.floor(time_in_seconds);
如果您只需要整数秒,而小数点后的毫秒仍未附加,请使用以下命令:
var seconds = Math.floor(new Date() / 1000);
您可以创建一个Date对象(其中将包含当前时间),然后调用getTime()
以获取自纪元以来的ms。
var ms = new Date().getTime();
如果要秒,则将其除以1000:
var sec = new Date().getTime() / 1000;
我的首选方式:
var msEpoch = (+new Date());
var sEpoch = (+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');
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);
本文地址:http://javascript.askforanswer.com/ruhehuodezijavashidaiyilaidemiaoshu.html
文章标签:datetime , javascript
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:datetime , javascript
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!