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

来源:互联网 发布:网络投资app 编辑:程序博客网 时间:2024/05/22 08:14

业务背景:今天让做一个心跳包的处理,要设置为一小时间隔没有收到就报警,上网查阅了一下用什么类库好,大家都说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也有很多方便的功能

原创粉丝点击