使用jQuery计算两个日期之间的月份差和半个月差

时间:2019-05-01 10:00:37

标签: javascript jquery date

即使一个月有31天或30天,我也希望得到正确的结果。

var startDt = $("input[id=StartDate_" + i + "]").val();
var endDt = $("input[id=EndDate_" + i + "]").val();
var diff = new Date(Date.parse(endDt) - Date.parse(startDt));
var days = ((diff / 1000 / 60 / 60 / 24) + 1);

if (SelVal == "Monthly") {
  $("#div" + i).html(Math.ceil(days / 30));
}
if (SelVal == "Semi-monthly") {
  $("#div" + i).html(Math.ceil(days / 15));
}

我想计算开始日期为2019年4月10日和结束日期为2019年5月14日的差额。我希望每月和每半个月一次。对于此示例:

  • 相差月份数为1
  • 每半个月的差值为3,因为当月中旬是 按每月的日期15计算。

例如,每个中心的计费都是在该月的第1和15日进行的,我需要在两个日期之间进行计费。

1 个答案:

答案 0 :(得分:0)

好的,试试这个:

var date1 = new Date("10/31/2019");
var date2 = new Date("12/1/2019");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
console.log(diffDays)
console.log("months: "+ (Math.floor(diffDays/30)));
console.log("days: "+ (diffDays%30));

看看代码片段

var date1 = new Date("10/31/2019");
var date2 = new Date("12/1/2019");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
console.log(diffDays)
console.log("months: "+ (Math.floor(diffDays/30)));
console.log("days: "+ (diffDays%30));