您的位置:首页 > Web前端 > Node.js

Node.js 调用moment.js计算时间间隔

2017-05-23 18:02 477 查看

业务背景:今天让做一个心跳包的处理,要设置为一小时间隔没有收到就报警,上网查阅了一下用什么类库好,大家都说moment可以。于是就引入了moment进行计算

首先到项目文件夹下(windows 系统)运行cmd 用npm install moment.js 稍等片刻

然后在项目文件中写var moment = require(‘moment’);

这样就可以调用moment类库啦

用法参见官方网站
www.momentjs.com


主要我这个使用环境是:每次心跳包来的时候我记录一下时间,并且以后再来的心跳包只会进行更新

var receivedTime = moment();//这样写是默认格式的时间
var receivedTime = moment().format('YYYY-MM-DD HH:mm');//这个就是自定义了


然后我有一个计时器,在小于一小时的时间间隔里进行全表检测,因为终端设备不多,每一个心跳包的最后一次时间戳与当前时间进行比对,超过一小时就进行警报处理,这是个简单的功能

这里用到了moment的unix()函数,这个函数用于取unix()时间差来计算日期相差多久。

另外使用unix()获取的时间精确到秒 moment还有另一个函数 valueOf()精确到毫秒,这里对精度要求不高所以只需要用unix()

setInterval(function(){
var sql = 'select exhibit_code,receivedtime from exhibit_heartbeat';
mysqlHandler.excuteSql(sql,function(err,results){
results.forEach(function(result,index){
var receivedTime = moment(result['receivedtime']);
var timeOut = moment().unix() - receivedTime.unix();
if((timeOut/3600) >= 1)//更改这里的参数用于心跳包间隔
{
console.log("设备:" + result['exhibit_code'] + "心跳超时");
}
});
});
},6000); //正常时间60000 测试缩短


以上就是moment.js的时间计算 和java的calendar类一样,moment.js也有很多方便的功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows node.js