早于x的javascript unix时间戳
javascript unix timestamp older than x
在我去做一些扰乱应用程序流程的事情之前,我需要澄清我用unix时间戳做的一个假设,我根本无法可视化这些数字,我不想做相反的事情。。
这里有一个关于php的问题,但我在javascript 中找不到
如何检查时间戳是否为一小时?
我的阵列将由我的应用程序构建,如
var list=[
['name0',1424300986716,1424301040055,1424301049633],
['name1',1424300998116,1424301019372,1424301059418],
['name2',1424301009043,1424301030315,1424301059418]
//...
];
我想确定第二列时间戳是否有一个超过24小时
如果我进行这个测试,我会更加困惑,因为我在意大利,我认为有些东西与时区或时钟有关,或者我对有错误的想法
var now=(+new Date());
var back24hrs=new Date((now-86400));
console.log(now,back24hrs);
// 1424303535659 Thu Feb 19 2015 00:50:49 GMT+0100 (W. Europe Standard Time)
现在是星期四,现在还没有回来24小时!我看不出我怎么错了。。
基本上,我的假设是(当前时间-24小时)我认为该部分是正确的,但也小于或大于节省的时间?
我想做这样的事情:
function olderthan24hrs(column){
var hrs24=86400;
var i=list.length;
while(i--){
if((+new Date()-hrs24)>list[i][column]){break;}
}
return i;
}
var choice=olderthan24hrs(2);
但我真的不确定这是否是正确的
JavaScript的Date
对象以毫秒而非秒为单位进行操作。
因此,使用86400
,您只需从当前时间戳中减去84.6
秒,而不是像您想象的那样"一整天的秒数"。你需要把这个值乘以一千。
(减去86400秒并不意味着一直都是一天,因为一年中有两天的时间分别长一小时和短一小时,至少在任何有夏令时的国家都是这样。无论这是否与您的申请相关,您都必须自己决定。)
您已经有了答案,但需要澄清的是:UNIX和JavaScript(ECMAScript)使用相同的epoch作为时间值,但UNIX时间值是秒,JavaScript时间值是毫秒。24小时内有8.64e7毫秒。
如果您想查看时间是否大于24小时前,请通过从以秒为单位的时间值中减去24小时的秒来设置比较值:
// Current time value in seconds
var then = (Date.now()/1000 | 0) - 8.64e4;
但是,当它越过夏令时边界时,与前一天相关的时间将为+/-1小时。
如果您想与昨天的同一时间进行比较(因此超过夏令时边界23或25小时),请使用日期对象并减去一天来创建比较值:
var now = new Date();
var then = +(now.setDate(now.getDate() - 1))/1000 | 0;
然后进行比较(两者相同):
if (list[i][column] < then) {
// value is prior to comparison time
}
请注意,存储then值比在每次迭代中计算要高效得多。
你的while循环开始:
while(i--){
所以这是一个递减循环,所以你会得到超过24小时的最后一个值,而不是第一个。获得第一个:
for (var i=0, iLen=list.length; i<iLen; i++) {
if ((list[i][column] < then) {
return i;
}
}
这样,如果在比较时间之前没有时间,函数将返回undefined。在OP中,如果找不到合适的时间,它将返回-1。
- Javascript Unix时间戳转换
- 转换unix时间戳转换
- 带有unix时间戳的d3.js平分线
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- Unix时间戳从现在输出为1970
- 将正常日期转换为 unix 时间戳
- d3时间刻度x轴,带有unix时间戳
- 如何在JS中从Y-m-d日期获取unix时间戳
- JavaScript将人类可读的日期转换为unix时间戳,然后再转换回来
- 如何使用javascript在unix时间戳中获取日期
- 如何将 unix 时间戳转换为 JavaScript 日期对象(考虑时区)
- 早于x的javascript unix时间戳
- 如何对Javascript Unix时间戳数组进行排序
- 在JavaScript/jQuery中将日期字符串转换为unix时间戳
- 将Unix时间戳转换为长原始时间戳值
- 获取时刻.js unix 时间戳中的时刻 0
- 如何将 unix 时间戳和“上午 9:00”组合成新的时间戳
- 基于 if-else 子句创建随机 UNIX 时间戳
- 生产服务器中的 MomentJS 给了我一个不同的 unix 时间戳
- Pickadate:将日期转换为 unix 时间戳