0
需要获得最佳方法获得正确输出状态的帮助。 我正在写一个函数purchaseDateChecker,它从用户输入中输出正确的状态,该用户输入位于特定的日期范围之间。我没有得到某些输出(状态),所以想知道这是比较几天,几个月还是一年中的正确方法。如何比较几天或几个月或一年的时间jS
所以基本上要达到这样的 - 如果日期是isAfter()或isSame()和月
function purchaseDateChecker(dateSelection) {
var datePeriod = moment(dateSelection, 'YYYY-MM-DD'),
cutOffDate = moment('2015-10-01'),
todayDate = moment(),
purchaseDateStatus,
daysDiff = todayDate.diff(datePeriod, 'days'),
monthsDiff = todayDate.diff(datePeriod, 'months'),
yearDiff = todayDate.diff(datePeriod, 'years');
console.log('purchase date: ' + datePeriod);
console.log('days difference: ' + daysDiff);
console.log('mths difference: ' + monthsDiff);
console.log('years difference: ' + yearDiff);
console.log('today date: ' + todayDate);
if (datePeriod.isBefore(cutOffDate) && daysDiff < 61) {
// Purchased date is before the cut off date or less than 61 days
purchaseDateStatus = 'purchased before';
} else if (datePeriod.isAfter(cutOffDate) || datePeriod.isSame(cutOffDate) || daysDiff < 31) {
// Purchased date is after/the same as cut off date or less than 31 days
purchaseDateStatus = 'purchased after';
} else if (datePeriod.isAfter(cutOffDate) || datePeriod.isSame(cutOffDate) || daysDiff < 31 && monthsDiff < 6) {
// Purchased date is after/the same as cut off date or less than 31 days
purchaseDateStatus = 'between 31 days 6 months';
} else if (yearDiff > 6) {
purchaseDateStatus = 'over 6 years';
} else if (monthsDiff > 6 || yearDiff < 6) {
purchaseDateStatus = ' between 6 months and 6 years';
} else if (datePeriod.isBefore(cutOffDate) || daysDiff < 61 && monthsDiff < 6) {
purchaseDateStatus = 'between 61 days and 6 months'
}
return purchaseDateStatus;
}
console.log(purchaseDateChecker('2015-04-01'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
而不是设置变量然后返回,为什么不立即返回? –
不确定你的意思?是这个吗?? if(datePeriod.isBefore(cutOffDate)&& daysDiff <61){return'before purchased before'; – NiseNise