【发布时间】:2017-05-30 17:26:21
【问题描述】:
我想计算两个日期之间的月份和日期。然后需要计算用户在开始日期和结束日期之间支付的费用。
成本 = 10000.00; 周期性 = 3(季度);
月数和天数 =(开始日期 - 结束日期);
需要支付的费用=((月数天数/周期数)*成本);
我试图找出两个日期之间的时差,但它对我来说不能正常工作。谁能帮帮我?
var date = "2017-06-01";
console.log("date: "+date);
var currentDate = $filter('date')(date, "yyyy-MM-dd HH:mm:ss");
$scope.userdob = "2017-08-31";
var dobdate = $filter('date')($scope.userdob, "yyyy-MM-dd HH:mm:ss");
console.log("dob: "+dobdate);
/* differentiate Date */
var date1 = $filter('date')($scope.userdob, "yyyy-MM-dd");
var date2 = $filter('date')(date, "yyyy-MM-dd");
date1 = date1.split('-');
date2 = date2.split('-');
// Now we convert the array to a Date object, which has several helpful methods
date1 = new Date(date1[0], date1[1], date1[2]);
date2 = new Date(date2[0], date2[1], date2[2]);
if (date1 < date2)
{
var start_date = date1;
var end_date = date2;
var inverse = false;
end_date = new Date(end_date); //If you don't do this, the original date passed will be changed. Dates are mutable objects.
end_date.setDate(end_date.getDate() + 1);
// Calculate the differences between the start and end dates
var yearsDifference = end_date.getFullYear() - start_date.getFullYear();
var monthsDifference = end_date.getMonth() - start_date.getMonth();
var daysDifference = end_date.getDate() - start_date.getDate();
var d1 = new Date(end_date.getFullYear(), end_date.getMonth(), 0);
var noOfDays = d1.getDate();
$scope.noOfMonths = (inverse ? -1 : 1) * (yearsDifference * 12 + monthsDifference + daysDifference/noOfDays); // Add fractional month
【问题讨论】:
-
月份是什么意思?整个 30 天?
-
玩日期很痛苦,我的建议是查看momentjs 之类的内容 - 虽然这不能回答你的问题,但这个库为我节省了大量时间 :)将分解实际的日历月和闰年等
标签: javascript angularjs