@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
60 lines (59 loc) • 1.87 kB
JavaScript
import { Utils } from "../../utils/date";
export var convertDateToDay = function(date) {
return date ? {
year: date.getFullYear(),
month: date.getMonth() + 1,
date: date.getDate()
} : null;
};
export var convertDayToDate = function(day) {
return day ? new Date(day.year, day.month - 1, day.date) : null;
};
/**
* 获取当月面板中前一个月的日期数据
*/ export var getPrevMonthDays = function(year, month, firstDayOfWeek) {
var prevMonth = month - 1;
var prevYear = year;
if (prevMonth <= 0) {
prevMonth = 12;
prevYear -= 1;
}
var days = Utils.getMonthPreDay(year, month);
days -= firstDayOfWeek;
if (days >= 7) {
days -= 7;
}
var preDates = Utils.getMonthDays("".concat(prevYear), "".concat(prevMonth));
var months = Array.from(Array(preDates), function(_, k) {
return {
type: 'prev',
year: prevYear,
month: prevMonth,
date: k + 1
};
});
return months.slice(preDates - days);
};
/**
* 获取当前月的日期数据
*/ export var getCurrentMonthDays = function(year, month) {
var days = Utils.getMonthDays("".concat(year), "".concat(month));
return Array.from(Array(days), function(_, k) {
return {
type: 'current',
year: year,
month: month,
date: k + 1
};
});
};
/**
* 根据日期获取当前周的起始日期
*/ export var getCurrentWeekDays = function(day, firstDayOfWeek) {
var current = new Date(day.year, day.month - 1, day.date);
var count = (current.getDay() + 7 - firstDayOfWeek) % 7;
return [
convertDateToDay(new Date(current.getTime() - 24 * 60 * 60 * 1000 * count)),
convertDateToDay(new Date(current.getTime() + 24 * 60 * 60 * 1000 * (6 - count)))
];
};