700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 用js计算两个日期的时间差(年与天)

用js计算两个日期的时间差(年与天)

时间:2022-11-04 11:52:23

相关推荐

用js计算两个日期的时间差(年与天)

最近工作需要计算两个时间的日期差值,差值用多少年多少天表示,找了很多资料,好像都没有这种表达方式,然后自己修改了一个,可以得到正确的结果,记录下来,以供参考。

1.计算当月天数

// 判断当前月天数function getDays (mouth, year) {let days = 30if (mouth === 2) {//2月份的天数需要判断是否是闰年,闰年29天,平年28天days = year % 4 === 0 ? 29 : 28} else if (mouth === 1 || mouth === 3 || mouth === 5 || mouth === 7 || mouth === 8 || mouth === 10 || mouth === 12) {// 月份为:1,3,5,7,8,10,12 时,为大月.则天数为31;days = 31}return days}

2.判断某一年的天数

// 判断某一年的天数function yearDays(year){let leapYear = false, sum_day = 0, month_arr = [4, 6, 9, 11];if (year % 100 === 0) {// 年份是整百leapYear = year % 400 === 0 } else {leapYear = year % 4 === 0}// 下面计算每个月的天数for (let i = 1; i < 13; i++) {if (i === 2) {sum_day += leapYear ? 29 : 28} else if (month_arr.includes(i)) {sum_day += 30} else {sum_day += 31}}return sum_day}

3.判断今年剩余的天数

// 判断今年剩余的天数function reyearDay(){// 今天的标准时间let today = new Date();// 本年最后标准时间let endYear = new Date(today.getFullYear(), 11, 31, 23, 59, 59);// 一天的毫秒数let msPerDay = 24 * 60 * 60 * 1000;// 计算剩余毫秒除以一天的毫秒数,就是天数return Math.round((endYear.getTime() - today.getTime()) / msPerDay);}

4.计算某年某月之前的天数

// 计算某年某月之前的天数function mdays(y,m,d){let days = d;//加上当月的事件let m1 = m - 1;//去掉当月的时间if(m>1){for(let i = 0;i<m1;i++){days = days + getDays(i+1,y)//}}return days;}

合理运用1/2/4的三个函数,计算两个日期之差(年与天)

//srarTime:-09-20,endTime:-02-05const dateDeath = (starTime,endTime) => {//转换时间let startime = starTime.replace(new RegExp("-", "gm"), "/");let endtime = endTime.replace(new RegExp("-", "gm"), "/"); startime = new Date(value);endtime = new Date(endtime);//得到两个时间的年月日var start={year:startime.getFullYear(),month:startime.getMonth() + 1,day:startime.getDate()}var end = {year:endtime.getFullYear(),month:endtime.getMonth()+1,day:endtime.getDate()}//得到两个时间的月+日的天数startDays = mdays(start.year,start.month,start.day)endDays = mdays(endtime.year,endtime.month,endtime.day)var diff={};//日期年份差值diff.year= end.year - end.year;//天数差值diff.day =start.mday - start.mday;let chastr = '';//天数差值大于0时if(diff.day>0){if(diff.year>0){chastr = diff.year+'年'+diff.day+'天'}else{chastr = diff.day+'天'}}else if(diff.day==0){//天数差值等于0时if(diff.year>0){chastr = diff.year+'年'}else{chastr = '今日逝世'}}else if(diff.day<0){//天数差值小于0时,从endtime中借一年diff.year = diff.year-1;let yday =yearDays(end.year - 1);diff.day = diff.day + yday;if(diff.year>0){chastr = diff.year + '年'+diff.day + '天'}else{chastr = diff.day + '天'}}return chastr;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
JS 时间差计算

JS 时间差计算

2023-12-13

JS计算时间差

JS计算时间差

2020-02-26

js 计算时间差

js 计算时间差

2020-09-14

JS计算日期时间差

JS计算日期时间差

2020-02-14

前端js计算时间差

前端js计算时间差

2022-12-01