js比较日期大小的函数(js计算两个日期相差天数)

   2023-04-30 互联网0
核心提示:前言 虽然现在处理日期方面已经有了很成熟的也很好用的库,例如(momentjs和date-fns),但是在实际开发中,我们有时候可能并不需要整个库。所以我就在下面整理了在前端开发时对日期时间的各种操作,也算是比较全的了。其中一部分来自自己,

js比较日期大小的函数(js计算两个日期相差天数)

前言

虽然现在处理日期方面已经有了很成熟的也很好用的库,例如(momentjs和date-fns),但是在实际开发中,我们有时候可能并不需要整个库。所以我就在下面整理了在前端开发时对日期时间的各种操作,也算是比较全的了。其中一部分来自自己,还有一部分来源于我们万能的网友~

获取当前时间戳 var timestamp = Date.parse(new Date()); //精确到秒var timestamp = (new Date()).valueOf(); //精确到毫秒var timestamp = new Date().getTime(); //精确到毫秒var timestamp = +new Date();var timestamp = Date.now(); 获取指定时间戳 var timestamp = (new Date(" 2019/10/24 08:00:00")).getTime();var timestamp = (new Date(" 2019-10-24 08:00:00")).getTime(); 获取当前时间的前一天/后一天的时间戳 var timestamp = +new Date() - 24*60*60*1000;var timestamp = +new Date() + 24*60*60*1000; 今日零点时间戳 var timestamp = new Date(new Date().toLocaleDateString()).getTime(); 今日最晚时间 23:59:59的时间戳 let timestamp = new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1; 获取当前时间的n天后的时间戳 function tonextTimes(n){ let timestamp = +new Date() + n * 86400000; return timestamp;} 本周第一天 function showWeekFirstDay(){ let Nowdate=new Date(); let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000); return WeekFirstDay;} 本周最后一天 function showWeekLastDay(){ let Nowdate=new Date(); let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000); let WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000); return WeekLastDay;} 本月第一天 function showMonthFirstDay(){ let Nowdate=new Date(); let MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()); return MonthFirstDay;} 本月最后一天 function showMonthLastDay(){ let Nowdate=new Date(); let MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1); let MonthLastDay=new Date(MonthNextFirstDay-86400000); return MonthLastDay;} 日期转时间戳 function timeToTimestamp (time) { let date = new Date(time); let timestamp = date.getTime(); return timestamp;} 格式化当前时间 function getdataTimeSec() { let time = new Date(); let weekDay; let year = time.getFullYear(); let month = time.getMonth() + 1; let day = time.getDate(); //获取时分秒 let h = time.getHours(); let m = time.getMinutes(); let s = time.getSeconds(); //检查是否小于10 h = check(h); m = check(m); s = check(s); let now_day = time.getDay(); switch (now_day) { case 0: { weekDay = "星期日" } break; case 1: { weekDay = "星期一" } break; case 2: { weekDay = "星期二" } break; case 3: { weekDay = "星期三" } break; case 4: { weekDay = "星期四" } break; case 5: { weekDay = "星期五" } break; case 6: { weekDay = "星期六" } break; case 7: { weekDay = "星期日" } break; } let timeText = year + "年" + month + "月" + day + "日 " + " " + weekDay + " " + h + ":" + m +":" + s; return timeText} 返回指定时间戳之间的时间间隔 function getTimeInterval(startTime, endTime) { let runTime = parseInt((endTime - startTime) / 1000); let year = Math.floor(runTime / 86400 / 365); runTime = runTime % (86400 * 365); let month = Math.floor(runTime / 86400 / 30); runTime = runTime % (86400 * 30); let day = Math.floor(runTime / 86400); runTime = runTime % 86400; let hour = Math.floor(runTime / 3600); runTime = runTime % 3600; let minute = Math.floor(runTime / 60); runTime = runTime % 60; let second = runTime; let str = \'\'; if (year > 0) { str = year + \'年\'; } if (year <= 0 && month > 0) { str = month + \'月\'; } if (year <= 0 && month <= 0 && day > 0) { str = day + \'天\'; } if (year <= 0 && month <= 0 && day <= 0 && hour > 0) { str = hour + \'小时\'; } if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute > 0) { str = minute + \'分钟\'; } if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute <= 0 && second > 0) { str += second + \'秒\'; } str += \'前\'; return str;} 按类型格式化日期 function getFormatDate(date, dateType) { let dateObj = new Date(date); let month = dateObj.getMonth() + 1; let strDate = dateObj.getDate(); let hours = dateObj.getHours(); let minutes = dateObj.getMinutes(); let seconds = dateObj.getSeconds(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } if (hours >= 0 && hours <= 9) { hours = "0" + hours } if (minutes >= 0 && minutes <= 9) { minutes = "0" + minutes } if (seconds >= 0 && seconds <= 9) { seconds = "0" + seconds } let dateText = dateObj.getFullYear() + \'年\' + (dateObj.getMonth() + 1) + \'月\' + dateObj.getDate() + \'日\'; if (dateType == "yyyy-mm-dd") { dateText = dateObj.getFullYear() + \'-\' + (dateObj.getMonth() + 1) + \'-\' + dateObj.getDate(); } if (dateType == "yyyy.mm.dd") { dateText = dateObj.getFullYear() + \'.\' + (dateObj.getMonth() + 1) + \'.\' + dateObj.getDate(); } if (dateType == "yyyy-mm-dd MM:mm:ss") { dateText = dateObj.getFullYear() + \'-\' + month + \'-\' + strDate + \' \' + hours + ":" + minutes + ":" + seconds; } if (dateType == "mm-dd MM:mm:ss") { dateText = month + \'-\' + strDate + \' \' + hours + ":" + minutes + ":" + seconds; } if (dateType == "yyyy年mm月dd日 MM:mm:ss") { dateText = dateObj.getFullYear() + \'年\' + month + \'月\' + strDate + \'日\' + \' \' + hours + ":" + minutes + ":" + seconds; } return dateText; } 判断是否为闰年 function leapYear(year) { return !(year % (year % 100 ? 4 : 400));} 返回两个年份之间的闰年 function leapYears(start, end) { let arr = []; for (var i=start; i 判断时间格式是否有效 function isTime(str) { var a = str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/); if (a == null) { return false; } if (a[1] >= 24 || a[3] >= 60 || a[4] >= 60) { return false } return true;}function strDateTime(str){ var result = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/); if (result == null) return false; var d = new Date(result[1], result[3] - 1, result[4]); return (d.getFullYear() == result[1] && d.getMonth() + 1 == result[3] && d.getDate() == result[4]);}function strDateTime(str){ var result = str.match(/^(d{4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/); if (result == null) return false; var d = new Date(result[1], result[3] - 1, result[4], result[5], result[6], result[7]); return (d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4] && d.getHours() == result[5] && d.getMinutes() == result[6] && d.getSeconds() == result[7]);} 验证日期大小 function compareDate(d1, d2) { return ((new Date(d1.replace(/-/g, "/"))) < (new Date(d2.replace(/-/g, "/"))));} 验证一个日期是不是今天 function isToday(val){ return new Date().toLocaleDateString() == new Date(val).toLocaleDateString();} 验证传入的日期是否是昨天 function isYesterday(val) { var today = new Date(); var yesterday = new Date(now - 1000 * 60 * 60 * 24); var test = new Date(val); if (yesterday.getYear() === test.getYear() && yesterday.getMonth() === test.getMonth() && yesterday.getDate() === test.getDate()) { return true; } else { return false; }} 设置几天后的日期 function convertDate (date, day) { let tempDate = new Date(date); tempDate.setDate(tempDate.getDate()+day); let Y = tempDate.getFullYear(); let M = tempDate.getMonth()+1 < 10 ? \'0\'+(tempDate.getMonth()+1) : tempDate.getMonth()+1; let D = tempDate.getDate() < 10 ? \'0\'+(tempDate.getDate()) : tempDate.getDate(); let result = Y + "-" + M + "-" + D return result;} 写在最后

若上面函数有错误,或者还有工作中遇到,但是上面没有写到的,欢迎指出来~

 
标签: 日期 闰年 天数
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与爱美生活网(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • jq获取当前日期前一个月(javascript获取当前系
    默认功能 日期选择器(Datepicker)绑定到一个标准的表单 input 字段上。把焦点移到 input 上(点击或者使用 tab 键),在一个小的覆盖层上打开一个交互日历。选择一个日期,点击页面上的任意地方(输入框即失去焦点),或者点
  • 什么是候平均气温(气温摄氏度日期入)
    什么是候平均气温(气温摄氏度日期入)
    候平均气温是指连续5天的日平均气温加权平均值。候平均气温是划分季节的指标,候平均气温小于10摄氏度为冬季,候平均气温大于22摄氏度为夏季,候平均气温在10摄氏度至22摄氏度之间为春秋季,候平均气温达到10摄氏度,与桃花初开、杨柳抽青的日期大
  • 英语作业批改日期怎么写 怎么写英语作业批改日期
    英语作业批改日期怎么写 怎么写英语作业批改日
    1、英语作业批改的日期应先写月份,然后写日期,这样才比较规范。也可以使用简写。2、常见的月份缩写如下(其中May(五月)没有缩写):1、January~Jan./Jan(一月)2、February~Feb./Feb(二月)3、March~M
  • 白羊巨蟹摩羯都是几月份(星座出生日期黄道)
    白羊巨蟹摩羯都是几月份(星座出生日期黄道)
    白羊座是黄道十二星座之第一宫,位于双鱼座之东,金牛座之西,出生日期为3月21日到4月20日。巨蟹座是夏天开始的第一个星座,也是十二星座里最暗的一个星座,象征人类内在潜能和灵魂,出生日期为6月22日至7月22日。摩羯座是黄道十二宫的第十宫,位
  • iope生产日期怎么看(汉字截止日期生产)
    iope生产日期怎么看(汉字截止日期生产)
    1、 生产日期:제조,对应的汉字是制造,表示生产日期,通常跟在日期的后面,也有放前面的时候;2、 截止日趋:사용기한,对应的汉字是使用期限,表示截止日期,有时候也用유통기한表示,对应的汉字是流通期限;3、 韩国的化妆品一般没有截止日期,都是
    03-31 汉字韩国
  • 日期yyyymmdd怎么填上去(选择微软公司单元)
    日期yyyymmdd怎么填上去(选择微软公司单元)
    首先打开电脑上的Excel软件,然后选择日期单元格区域,点击鼠标右键,选择单元格格式,然后选择自定义,在类型中输入YYYYMMDD就可以了。MicrosoftExcel是微软公司的办公软件Microsoftoffice的组件之一,是由Mic
  • 淘抢购怎么报名(报名点击日期首页)
    淘抢购怎么报名(报名点击日期首页)
    1、首先进入淘抢购网站的首页,点击首页右上角的商家报名选项;2、进入报名的页面后,点击我要报名选项,接着可查看报名日期,橙色的日期为可报名时间;3、选择报名日期之后,进入类目选择页面,然后在对应的类目后点击报名;4、最后填写商品和卖家信息,
  • 今年几号入伏(入伏中伏夏至日期)
    今年几号入伏(入伏中伏夏至日期)
    1、2020年入伏的日期:2020年07月16日。2、入伏意思是进入三伏天。“夏至三庚数头伏”,这是确立初伏的依据。历书规定:“夏至三庚便数伏”,意思是说,“从夏至日”开始往后数,数到第三个“庚日”便开始入伏了。这里的“庚日”是指古代的“干
    03-24 日期
  • 资生堂正品官网查询,资生堂生产日期查询
    资生堂正品官网查询,资生堂生产日期查询
    5XXAM对应的,2资生堂化妆品在,自己分析的资生堂的批号,你写出的这四个字母或许是产品,p表示2008年,证明在生产后的3年内都有安全有效的。正规的资生堂产品没有生产日期和保质期限,比如JJ第一位是月份,H表示七月份,比如瓶子的底部。麻烦
  • 微信传的照片怎么看拍摄日期(照片日期拍摄查看)
    微信传的照片怎么看拍摄日期(照片日期拍摄查看
    微信传的照片无法直接在微信上查看拍摄日期,需要通过手机照片的本地保存处来查看,所以用户在微信程序中只能查看照片上传日期,用户无法得知好友的照片拍摄日期,可以通过查看手机相册知道用户个人照片的拍摄日期。