最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用moment處理時間戳并計算時間的差值

 更新時間:2022年04月25日 10:47:13   作者:huihu_bird  
前端很多場景都會涉及到對時間的處理,我所用得最多的庫是moment,下面這篇文章主要給大家介紹了關(guān)于如何利用moment處理時間戳并計算時間的差值的相關(guān)資料,需要的朋友可以參考下

項目使用nodejs寫服務端,有個功能就是統(tǒng)計代理服務器流量,然后把統(tǒng)計的數(shù)據(jù)通過echarts渲染到頁面。

當然統(tǒng)計數(shù)據(jù)這里用到了 定時器,在使用的是

 var 
 schedule = 
 require(
 'node-schedule');

有興趣的同學可以在npm上搜一搜關(guān)于js定時任務的事,其實都大同小異,差不多都是運用corn表達式。

以下是我的 定時從代理服務器獲取數(shù)據(jù) 并存庫。

schedule.scheduleJob('*/15 * * * * * ', function () {
            console.log('timer !!!!!!!!!!');
            var dataObj1 = {};
            iplists.forEach(function (ele, index) {
                var req = http.request("http://" + ele + ":14567/stat", function (res) {
                    dataObj1.time = new Date(res.headers.date);
                    dataObj1.ip = req.getHeader("host").split(":")[0];
                    res.setEncoding('utf-8');
                    var tempData = '';
                    res.on('data', function (chunk) {
                        tempData += chunk;
                        var resultObj = JSON.parse(tempData);
                        dataObj1.flow = resultObj.bw15s;
                        var flow1 = new flowrank1({
                            ip: dataObj1.ip,
                            flow: dataObj1.flow,
                            time: new Date(dataObj1.time)
                        });
                        flow1.save(function (err, flow1) {
                            if (err) {
                                console.log(err);
                                return;
                            }
                        });
                    });
                });
                req.on("error", function (err) {
                    console.log(err);
                });
                req.end()
            });
        });

現(xiàn)在來展示 需要根據(jù)前端傳過來的 時間戳 來篩選出數(shù)據(jù)的代碼,處理時間我用到了moment這個類庫,基本包含了時間所有的處理方法。

總結(jié)以下moment的幾個常用的函數(shù):

moment().startOf('year');    // set to January 1st, 12:00 am this year
moment().startOf('month');   // set to the first of this month, 12:00 am
moment().startOf('quarter');  // set to the beginning of the current quarter, 1st day of months, 12:00 am
moment().startOf('week');    // set to the first day of this week, 12:00 am
moment().startOf('isoWeek'); // set to the first day of this week according to ISO 8601, 12:00 am
moment().startOf('day');     // set to 12:00 am today
moment().startOf('date');     // set to 12:00 am today
moment().startOf('hour');    // set to now, but with 0 mins, 0 secs, and 0 ms
moment().startOf('minute');  // set to now, but with 0 seconds and 0 milliseconds
moment().startOf('second');  // same as moment().milliseconds(0);
moment().diff(Moment|String|Number|Date|Array);
moment().diff(Moment|String|Number|Date|Array, String);
moment().diff(Moment|String|Number|Date|Array, String, Boolean);
var a = moment([2008, 9]);
var b = moment([2007, 0]);
a.diff(b, 'years');       // 1
a.diff(b, 'years', true); // 1.75
moment().add(Number, String);
moment().add(Duration);
moment().add(Object);
var moment = require('moment');
var starttime = moment(moment.unix(parseInt(req.query.starttime)).toDate());
console.log("==============");
console.log(moment(moment.unix(parseInt(req.query.starttime)).toDate()));
var endtime = moment(moment.unix(parseInt(req.query.endtime)).toDate());
console.log(moment(moment.unix(parseInt(req.query.endtime)).toDate()));
console.log(endtime.diff(starttime, 'hour'));
console.log(endtime.diff(starttime, 'months'));
console.log(endtime.diff(starttime, 'months'));
/**
  * 查詢小于1天的數(shù)據(jù)
  */
if (endtime.diff(starttime, 'hour') <= 24) {
    console.log("flowrank1");
    flowrank1.find({
        ip: req.query.ip,
        time: {
            $gt: moment.unix(req.query.starttime).toDate(),
            $lte: moment.unix(req.query.endtime).toDate()
        }
    },
    {
        _id: 0,
        ip: 1,
        flow: 1,
        time: 1
    },
    function(err, doc) {
        if (err) {
            console.log("err!!!!!")
            console.log(err);
            return res.end(JSON.stringify(retcode.operateDbErr));
        }
        var result = retcode.res_ok;
        result.data = doc;
        console.log(doc)
        res.end(JSON.stringify(result));
    })
} else if (endtime.diff(starttime, 'months') == 0) {
    console.log("flowrank2!!!!");
    flowrank2.find({
        ip: req.query.ip,
        time: {
            $gt: moment.unix(req.query.starttime).toDate(),
            $lte: moment.unix(req.query.endtime).toDate()
        }
    },
    {
        _id: 0,
        ip: 1,
        flow: 1,
        time: 1
    },
    function(err, doc) {
        if (err) {
            console.log("err!!!!!")
            console.log(err);
            return res.end(JSON.stringify(retcode.operateDbErr));
        }
        var result = retcode.res_ok;
        result.data = doc;
        console.log(doc)
        res.end(JSON.stringify(result));
    })
} else if (endtime.diff(starttime, 'months') >= 1) {
    console.log("in flowrank3");
    flowrank3.find({
        ip: req.query.ip,
        time: {
            $gt: moment.unix(req.query.starttime).toDate(),
            $lte: moment.unix(req.query.endtime).toDate()
        }
    },
    {
        _id: 0,
        ip: 1,
        flow: 1,
        time: 1
    },
    function(err, doc) {
        if (err) {
            console.log("err!!!!!")
            console.log(err);
            return res.end(JSON.stringify(retcode.operateDbErr));
        }
        var result = retcode.res_ok;
        result.data = doc;
        console.log(doc)
        res.end(JSON.stringify(result));
    })
} else {
    return res.end(JSON.stringify(retcode.res_err));
}

總結(jié)

到此這篇關(guān)于如何利用moment處理時間戳并計算時間差值的文章就介紹到這了,更多相關(guān)moment處理時間戳時間差內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

永泰县| 平邑县| 济南市| 稻城县| 错那县| 东阳市| 石棉县| 博乐市| 江门市| 高陵县| 肃北| 德昌县| 西昌市| 庆云县| 铁岭市| 西丰县| 固安县| 翁牛特旗| 涞水县| 上高县| 乐平市| 上杭县| 乾安县| 中超| 武宣县| 井冈山市| 彰化县| 新泰市| 通许县| 扎囊县| 嘉义县| 虹口区| 广河县| 颍上县| 保靖县| 仁化县| 新疆| 金乡县| 平乐县| 茂名市| 嘉黎县|