广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何利用moment处理时间戳并计算时间的差值
  • 667
分享到

如何利用moment处理时间戳并计算时间的差值

2024-04-02 19:04:59 667人浏览 独家记忆
摘要

项目使用nodejs写服务端,有个功能就是统计代理服务器流量,然后把统计的数据通过echarts渲染到页面。 当然统计数据这里用到了 定时器,在使用的是 var schedul

项目使用nodejs写服务端,有个功能就是统计代理服务器流量,然后把统计的数据通过echarts渲染到页面。

当然统计数据这里用到了 定时器,在使用的是

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

有兴趣的同学可以在npm上搜一搜关于js定时任务的事,其实都大同小异,差不多都是运用corn表达式。

以下是我的 定时从代理服务器获取数据 并存库。

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()
            });
        });

现在来展示 需要根据前端传过来的 时间戳 来筛选出数据的代码,处理时间我用到了moment这个类库,基本包含了时间所有的处理方法。

总结以下moment的几个常用的函数:

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'));

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));
}

总结

到此这篇关于如何利用moment处理时间戳并计算时间差值的文章就介绍到这了,更多相关moment处理时间戳时间差内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用moment处理时间戳并计算时间的差值

本文链接: https://www.lsjlt.com/news/147232.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用moment处理时间戳并计算时间的差值
    项目使用nodejs写服务端,有个功能就是统计代理服务器流量,然后把统计的数据通过echarts渲染到页面。 当然统计数据这里用到了 定时器,在使用的是 var schedul...
    99+
    2022-11-13
  • 怎么利用moment处理时间戳并计算时间的差值
    这篇“怎么利用moment处理时间戳并计算时间的差值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么利用moment处理时...
    99+
    2023-06-30
  • vue如何使用moment处理时间戳转换成日期或时间格式
    目录一、使用环境二、安装moment三、在vue所需页面进行引入五、最终效果 六、moment中文官网总结一、使用环境 Moment 被设计为在浏览器和 Node.js 中...
    99+
    2022-11-13
  • php如何计算两个时间戳的差几天
    这篇文章给大家分享的是有关php如何计算两个时间戳的差几天的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php计算两个时间戳相差几天的方法:1、将两个时间戳相减,得到时间差;2、将时间差除以一天的总秒数“8640...
    99+
    2023-06-29
  • Python处理时间戳和时间计算等的脚本分享
    由于实际需要,简要写了个小脚本,并打包生成exe,供无网络环境下使用 脚本1:显示当前时间与时间戳,以及10分钟后的时间与时间戳 # -*- coding: utf-8 -*- "...
    99+
    2022-11-11
  • JS如何计算距当前时间的时间差
    这篇文章主要介绍JS如何计算距当前时间的时间差,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如下所示: function get_time_diff(time) ...
    99+
    2022-10-19
  • MySQL 中如何计算两个时间值之间的差异?
    借助 TIMEDIFF() MySQL 函数,可以计算两个时间值之间的差异。示例mysql> Select TIMEDIFF('04:05:45','03:05:45') AS ‘Diffe...
    99+
    2023-10-22
  • 如何使用批处理bat计算两个时间差
    本篇内容主要讲解“如何使用批处理bat计算两个时间差”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用批处理bat计算两个时间差”吧!这个是脚本代码[保存为etime.bat放在当前路径下即...
    99+
    2023-06-08
  • 利用java如何实现计算两个日期的时间差
    今天就跟大家聊聊有关利用java如何实现计算两个日期的时间差,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。java计算两个日期中间的时间其中在数据库中有一个字段为datetime类型...
    99+
    2023-05-31
    java 时间差 ava
  • 如何用java计算两个时间相差多少小时
    最近有个需求,根据两个时间,计算两个时间之间相差多少个小时。 查了一下,网上有现成的工具类 摘出自己需要的。得到下面这个 private int getDifferHour(Da...
    99+
    2022-12-24
    java计算时间相差小时怎么算 java 时间差值计算 java计算时间间隔
  • 如何计算CDS view里两个时间戳之间的天数间隔
    ABAP透明表里的时间戳,数据类型为dec: 有个需求:计算这两个时间戳之间的天数间隔,丢弃时间戳年-月-日8位后面的小时:分钟:秒。 举个例子:如果时间戳是2018091817313...
    99+
    2022-10-18
  • 利用Java如何实现计算两个程序运行的时间差
    这期内容当中小编将会给大家带来有关利用Java如何实现计算两个程序运行的时间差,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、获取系统当前时间long startTime = System.curren...
    99+
    2023-05-31
    java ava 时间差
  • 利用Java怎么实现计算两个日期的时间差
    本篇文章给大家分享的是有关利用Java怎么实现计算两个日期的时间差,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:public static int getMonthD...
    99+
    2023-05-31
    java ava
  • MySQL中如何计算时间相差的分钟数
    在MySQL中,计算时间相差的分钟数是一个非常常见的需求。本文将介绍一些实用的函数,帮助你轻松地计算时间相差的分钟数。 TIMEDIFF函数 TIMEDIFF函数是MySQL中用于计算时间差的函数之一。它的语法如下: e1e2) e1e2...
    99+
    2023-10-20
    mysql 数据库
  • Python如何实现自动计算特定格式的时间差
    这篇文章主要讲解了“Python如何实现自动计算特定格式的时间差”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现自动计算特定格式的时间差”吧!功能输入一个特定格式的时间戳,...
    99+
    2023-06-22
  • bootstrap的timepicker在angular中如何实现取值并转化为时间戳
    小编给大家分享一下bootstrap的timepicker在angular中如何实现取值并转化为时间戳,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我...
    99+
    2022-10-19
  • 浅谈PHP如何处理毫秒级别的时间戳
    在通常情况下,我们在使用时间戳的时候,往往采用的是秒级别的时间戳。但是在程序设计过程中,有时候我们需要使用毫秒级别的时间戳。PHP作为一门功能强大的编程语言,在时间戳的处理方面也给我们提供了丰富的函数库,今天我们就来聊一聊PHP毫秒时间戳转...
    99+
    2023-05-14
    php php时间戳
  • 如何利用Python读取CSV文件并计算某一列的均值和方差
    今天就跟大家聊聊有关如何利用Python读取CSV文件并计算某一列的均值和方差,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。近日需要对excel的csv文件进行处理,求取某银行历年股...
    99+
    2023-06-22
  • 如何使用SQL计算宝宝每次吃奶的时间间隔(文末含PPT)
    编者的话:搞好SQL可以做很多事情,比如说可以解决海盗分金的问题,可以用SQL把大象装进冰箱,还可以用SQL解决环环相扣的刑侦推理问题,近期,有位读者朋友投稿了“使用SQL计算宝宝每次吃奶的时间间隔”,大...
    99+
    2022-10-18
  • 如何使用编程算法处理PHP应用程序的日志记录和响应时间?
    在开发PHP应用程序时,日志记录和响应时间是非常重要的。它们可以帮助我们识别应用程序中的问题和性能瓶颈。在本文中,我们将讨论如何使用编程算法处理PHP应用程序的日志记录和响应时间。 一、日志记录 在PHP应用程序中,我们可以使用PHP的内...
    99+
    2023-11-05
    日志 响应 编程算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作