js获取两个时间的差值
1、两个时间差值
/** * //获取两个日期的相差日期数 * @param {any} firstDate 开启时间 2022-03-23 00:03:00 * @param {any} secondDate 结束时间 2023-03-23 00:04:00 * @param {any} differ(differ 1.相差天数; 2.相差小时数; 3.相差分钟数; 4.相差秒数) */ function date_getdiffer_date(firstDate, secondDate, differ) { //1)将两个日期字符串转化为日期对象 var startDate = new Date(this.date_ios_format(firstDate)); var endDate = new Date(this.date_ios_format(secondDate)); //2)计算两个日期相差的毫秒数 var msecNum = endDate.getTime() - startDate.getTime(); //3)计算两个日期相差的天数 var dayNum = Math.floor(msecNum / this.date_getdiffer_scale(differ)); //console.log(firstDate + "," + secondDate + "," + differ + "," + dayNum) return dayNum; } /** * @function * @name date_ios_format * @desc 解决日期字符串在IOS中显示为NaN的问题 */ function date_ios_format(datestr) { return datestr.replace(/\-/g, "/"); } /** * //获取与毫秒数的转化比例 * @param {any} value(1.相差天数; 2.相差小时数; 3.相差分钟数; 4.相差秒数) */ function date_getdiffer_scale(value) { var format; //获取转化比(天数跟毫秒数的比例) if (value == 1) { format = parseFloat(24 * 60 * 60 * 1000); } //获取转化比(小时数跟毫秒数的比例) else if (value == 2) { format = parseFloat(60 * 60 * 1000); } //获取转化比(分钟数跟毫秒数的比例) else if (value == 3) { format = parseFloat(60 * 1000); } //获取转化比(秒数跟毫秒数的比例) else if (value == 4) { format = parseFloat(1000); } return format; }
2、比较两个日期的天数差,(不比较时分秒)
/** * 比较两个日期的天数差,不比较时分秒 * @param {any} date1 时间1字符串 * @param {any} date2 时间1字符串 */ function us_differ_day(date1, date2) { //console.log("us_differ_day="+date1) var sdate = new Date(this.date_ios_format(date1)); var edate = new Date(this.date_ios_format(date2)); var sd = this.us_date_format(sdate, "yyyy-MM-dd") var ed = this.us_date_format(edate, "yyyy-MM-dd") sdate = new Date(sd); edate = new Date(ed); var datespan = edate - sdate; datespan = Math.abs(datespan); var idays = Math.floor(datespan / (24 * 3600 * 1000)); return idays; } /** * @function * @name date_ios_format * @desc 解决日期字符串在IOS中显示为NaN的问题 */ function date_ios_format(datestr) { return datestr.replace(/\-/g, "/"); } /** * @function * @name us_date_format * @param {string} _date - 时间 不是时间字符串需要new Date("2022-03-23 01:02:03") * @param {string} fmt - 格式化 yyyy-MM-dd hh:mm:ss * @desc 返回时间字符串 */ function us_date_format(_date, fmt) { //console.log(_date); if (fmt == undefined) { fmt = "yyyy-MM-dd hh:mm:ss"; } var o = { "M+": _date.getMonth() + 1, //月份 "d+": _date.getDate(), //日 "h+": _date.getHours(), //小时 "m+": _date.getMinutes(), //分 "s+": _date.getSeconds(), //秒 "q+": Math.floor((_date.getMonth() + 3) / 3), //季度 "S": _date.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (_date.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]) .length))); } } //console.log(fmt); return fmt; }
两种方法的区别
var starttime ="2023-03-23 00:00:01"; var endtime ="2023-03-24 00:00:00" //1.相差天数; 2.相差小时数; 3.相差分钟数; 4.相差秒数 var ilength = date_getdiffer_date(starttime, endtime, 1); //结果是0 比较时分秒 var ilength1 =us_differ_day(starttime, endtime);//结果是1 不比较时分秒
本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/17246248.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
2022-03-23 .Net Core 运用ADO实现添加功能+验证邮箱是否存在+单个文件上传+手动(图片上传)、代码自动创建文件夹