如何比较几天或几个月或一年与momentJS

时间:2015-08-28 11:15:12

标签: javascript momentjs

需要帮助以获得获得正确输出状态的最佳方法。 我正在编写一个函数purchaseDateChecker,它从用户输入输出正确的状态,该状态介于某些日期范围之间。我没有获得某些输出(状态),所以想知道这是否是在momentJS或javascript中比较日期,月份或年份的正确方法。

所以基本上试图达到这样的目的 - 如果日期是 isAfter()或isSame()以及31天到少于6个月

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>

1 个答案:

答案 0 :(得分:0)

更改了我的逻辑并删除了添加变量以返回字符串

>>> state = (5,[1,2,3])
>>> current_state = state
>>> state[1].remove(3)
>>> state
(5, [1, 2])
>>> current_state
(5, [1, 2])