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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二位氢炉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值