1. 程式人生 > >Node.js 呼叫moment.js計算時間間隔

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也有很多方便的功能