datetime/dateRange.js

  1. import { add, isBefore } from 'date-fns';
  2. /**
  3. * 返回一个时间范围
  4. * @alias yd_date_range
  5. * @category datetime
  6. * @param {number} year - 需要增加的年数,默认为0
  7. * @param {number} month - 需要增加的月数,默认为0
  8. * @param {number} day - 需要增加的天数,默认为0
  9. * @param {number} hour - 需要增加的小时数,默认为0
  10. * @param {number} minute - 需要增加的分钟数,默认为0
  11. * @param {number} second - 需要增加的秒数,默认为0
  12. * @returns {Array} 返回一个包含两个Date对象的数组,分别代表开始时间和结束时间
  13. * @author 无名
  14. * @summary 生成一个时间范围数组,该数组包含当前时间和目标时间
  15. * 如果目标时间在当前时间之后,则返回 [当前时间, 目标时间] 的数组
  16. * 如果目标时间在当前时间之前或相同,则返回 [目标时间, 当前时间] 的数组
  17. */
  18. const dateRange = (year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0) => {
  19. const now = new Date();
  20. const targetDate = add(now, { years: year, months: month, days: day, hours: hour, minutes: minute, seconds: second });
  21. if (isBefore(now, targetDate)) {
  22. return [now, targetDate];
  23. }
  24. return [targetDate, now];
  25. };
  26. export default dateRange;