年月日借位相减,输入两个时间点的 年月日

举报
拿我格子衫来 发表于 2022/03/18 00:33:28 2022/03/18
【摘要】 /** * 计算两个日期的时长,返回x年x月x日,传入时间戳 */export function getDateDurations (startDate, endDate) { let startYear = parseInt(moment(startDate).format('YYYY')) let startMonth = pa...

      /**
       * 计算两个日期的时长,返回x年x月x日,传入时间戳
       */
      export function getDateDurations (startDate, endDate) {
       let startYear = parseInt(moment(startDate).format('YYYY'))
       let startMonth = parseInt(moment(startDate).format('MM'))
       let startDay = parseInt(moment(startDate).format('DD'))
       let endYear = parseInt(moment(endDate).format('YYYY'))
       let endMonth = parseInt(moment(endDate).format('MM'))
       let endDay = parseInt(moment(endDate).format('DD')) + 1
       let currentMonthDays = 31
       if ([1,3,4,7,8,10,12].includes(startMonth)) {
          currentMonthDays = 31
        } else if ([4,6,9,11].includes(startMonth)) {
          currentMonthDays = 30
        } else if (startMonth === 2) {
          currentMonthDays = 28
        }
       let monthJ1 = false // 是否需要向上级月份借位
       let yearJ1 = false // 是否需要向上级年份借位
       let mDay = endDay - startDay
       let mMonth = endMonth - startMonth
       let mYear = endYear - startYear
       if (mDay < 0) {
          monthJ1 = true
          mDay = mDay + currentMonthDays
        }
       if (monthJ1) {
          mMonth = mMonth - 1
        }
       if (mMonth < 0) {
          yearJ1 = true
          mMonth = mMonth + 12
        }
       if (mYear > 0) {
         if (yearJ1) {
            mYear = mYear - 1
          }
        }
       return (mYear ? mYear + '年' : '') + (mMonth ? mMonth + '月' : '') + (mDay ? mDay + '日' : '')
      }
  
 

 

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/103263481

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。