js计算两个时间之间相差的月份 // 天数

文章介绍了如何使用JavaScript编写两个函数,一个用于计算两个日期之间的月份差值,采用向下取整和向上取整的方法,另一个则计算天数差异,以处理时间区间在实际应用中的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 计算月份:

比如:2023-1-1  至  2023-12-31 之间,间隔12个月;

1.向下取整(一般都是向下取整)

function calculateMonthDifference(startDateString, endDateString) {
    var start = new Date(startDateString); // 将起始日期字符串转换为Date对象
    var end = new Date(endDateString);     // 将结束日期字符串转换为Date对象
  
    var timeDiff = Math.abs(end.getTime() - start.getTime()); // 获取时间差(单位:毫秒)
    var monthDiff = Math.floor(timeDiff / (30 * 24 * 60 * 60 * 1000)); // 根据每个月平均天数进行近似计算
  
    return monthDiff; // 返回月份差值
}
 
var startDate = "2023-1-1";
var endDate = "2023-12-31";
var result = calculateMonthDifference(startDate, endDate);
console.log("时间间隔月数:" + result);

2.向上取整

function calculateMonthDifference(startDateString, endDateString) {
    var start = new Date(startDateString); // 将起始日期字符串转换为Date对象
    var end = new Date(endDateString);     // 将结束日期字符串转换为Date对象
  
    var timeDiff = Math.abs(end.getTime() - start.getTime()); // 获取时间差(单位:毫秒)
    var monthDiff = Math.ceil(timeDiff / (30 * 24 * 60 * 60 * 1000)); // 根据每个月平均天数进行近似计算
  
    return monthDiff; // 返回月份差值
}
 
var startDate = "2023-1-1";
var endDate = "2023-12-31";
var result = calculateMonthDifference(startDate, endDate);
console.log("时间间隔月数:" + result);

自用代码备份)

 watch(
    () => props.visible,
    (visible) => {
      if (visible) {
        if (props.data) {
          assignObject(form, {
            ...props.data,
          });
          form.startTime = form.startTime.split('T')[0].replace(/-/g, "/")
          form.endTime = form.endTime.split('T')[0].replace(/-/g, "/")
         
          function calculateMonthDifference(startDateString, endDateString) {
           var start = new Date(startDateString); // 将起始日期字符串转换为Date对象
          var end = new Date(endDateString);     // 将结束日期字符串转换为Date对象  
          var timeDiff = Math.abs(end.getTime() - start.getTime()); // 获取时间差(单位:毫秒)
          var monthDiff = Math.floor(timeDiff / (30 * 24 * 60 * 60 * 1000)); // 根据每个月平均天数进行近似计算  
          return monthDiff; // 返回月份差值
            } 
          var startDate =  form.startTime;
          var endDate =  form.endTime;
          var result = calculateMonthDifference(startDate, endDate);
          console.log("时间间隔月数:" + result);
          form.jg = result
          isUpdate.value = true;
          loadingData()
        } else {
          isUpdate.value = false;
          loadingData()
        }
      } else {
        resetFields();
      }
    }
  );

计算天数:( jg 为计算的间隔天数 )

 var startDate = new Date(item.propertyFeeEndTime); //开始时间
             var endDate = new Date(item.startTime);  //结束时间
             var diffMilliseconds = Math.abs(endDate - startDate);  //取整
             var jg = Math.floor(diffMilliseconds / (1000 * 60 * 60 * 24));  //计算天数
             item.jg = jg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值