怎么利用moment处理时间戳并计算时间的差值
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,这篇"怎么利用moment处理时间戳并计算时间的差值"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2025年02月21日怎么利用moment处理时间戳并计算时间的差值
这篇"怎么利用moment处理时间戳并计算时间的差值"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"怎么利用moment处理时间戳并计算时间的差值"文章吧。
项目使用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 yearmoment().startOf('month'); // set to the first of this month, 12:00 ammoment().startOf('quarter'); // set to the beginning of the current quarter, 1st day of months, 12:00 ammoment().startOf('week'); // set to the first day of this week, 12:00 ammoment().startOf('isoWeek'); // set to the first day of this week according to ISO 8601, 12:00 ammoment().startOf('day'); // set to 12:00 am todaymoment().startOf('date'); // set to 12:00 am todaymoment().startOf('hour'); // set to now, but with 0 mins, 0 secs, and 0 msmoment().startOf('minute'); // set to now, but with 0 seconds and 0 millisecondsmoment().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'); // 1a.diff(b, 'years', true); // 1.75moment().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天的数据 */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处理时间戳并计算时间的差值"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
时间
处理
内容
数据
差值
服务
统计
就是
文章
服务器
知识
篇文章
代理
大同小异
差不多
一搜
代码
价值
任务
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
快播的原服务器是哪来的
查看数据库数据更新日期
上位机软件开发开题报告
广东省公安网络安全监督检查意见
orcl 添加多条数据库
海南云兆网络技术
有关网络安全的保险
闵行区新型网络技术公司
spj数据库录入
mc服务器为什么不可以加模组
数据库的下游产业链
llvm服务器 多版本
安装服务器2008系统
软件开发框架
数据库建表只允许输入数字
四川网络安全培训班哪个好
深圳商家联盟软件开发多少钱
phpstudy数据库安全
数据库怎样删除表中所有数据
黄岛区商城软件开发产品
微岛 上海 网络技术有限公司
数据库 创业公司
闲置路由器组建打印服务器
戴尔t620服务器主板型号
网络安全法是哪个部门
海淀区管理网络技术服务口碑推荐
部队手机网络安全防范措施
简述数据库定义以及作用
周口农商银行网络安全
服务器可以改家用电脑主机吗