下面给出了两个日期,其格式是我需要获取它们之间的月数。我尝试过 Difference in months between dates in Javascript : 但格式与我的格式不匹配。有人可以建议修复吗?
startDate:"2015-09-07",
endDate: "2015-12-30"
我还需要显示日期之间的月份,例如:
var months=["sept","oct","nov","dec","jan","feb"]
最佳答案
嗯,你总是可以分割字符串并使用月份,如下所示:
var startDate = startDate.split("-");
var endDate= endDate.split("-");
var MonthDifference = endDate[1] - startDate[1];
例如,您可以执行此功能:
function DifferenceInMonths(startDate, endDate){
startDate= startDate.split("-");
endDate= endDate.split("-");
return endDate[1] - startDate[1];
}
但是我们面临着这些日期可能发生在不同年份的问题。如果您尝试这样做会怎样:
function differenceCalculatedInMonthsByUnix(startDate, endDate){
startDate = new Date(startDate).getTime();
endDate= new Date(endDate).getTime();
var difference = endDate - startDate;
return timeMe(difference);
}
function timeMe(unix_timestamp){
unix_timestamp = parseInt(unix_timestamp);
var date = new Date(unix_timestamp);
var days = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear()
// hours part from the timestamp
var hours = date.getHours();
// minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// seconds part from the timestamp
var seconds = "0" + date.getSeconds();
// will display time in 10:30:23 format
var formattedTime = days + '.' + month + '.' + year + ' at:' + hours + ':' + minutes.substr(minutes.length-2) + ':' + seconds.substr(seconds.length-2);
return (12 * year) + month
}
不确定 TimeMe() 是我自己做的还是从 stackOverflow 找到的,所以如果有人需要积分,请pm我。 但是,是的,其中的想法是,我们将日期转换为 unix 时间戳,计算差异,然后将其转换为月份。
关于javascript - 获取月份差异并列出 JavaScript 中两个日期之间的数组中的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741215/