export const getDateRect = (date) => {
|
const _date = new Date(date);
|
return {
|
year: _date.getFullYear(),
|
month: _date.getMonth(),
|
date: _date.getDate(),
|
day: _date.getDay(),
|
time: _date.getTime(),
|
};
|
};
|
export const isSameDate = (date1, date2) => {
|
if (date1 instanceof Date || typeof date1 === 'number')
|
date1 = getDateRect(date1);
|
if (date2 instanceof Date || typeof date2 === 'number')
|
date2 = getDateRect(date2);
|
const keys = ['year', 'month', 'date'];
|
return keys.every((key) => date1[key] === date2[key]);
|
};
|
export const getMonthDateRect = (date) => {
|
const { year, month } = getDateRect(date);
|
const firstDay = new Date(year, month, 1);
|
const weekdayOfFirstDay = firstDay.getDay();
|
const lastDate = new Date(+new Date(year, month + 1, 1) - 24 * 3600 * 1000).getDate();
|
return {
|
year,
|
month,
|
weekdayOfFirstDay,
|
lastDate,
|
};
|
};
|
export const isValidDate = (val) => typeof val === 'number' || val instanceof Date;
|
export const getDate = (...args) => {
|
const now = new Date();
|
if (args.length === 0)
|
return now;
|
if (args.length === 1 && args[0] <= 1000) {
|
const { year, month, date } = getDateRect(now);
|
return new Date(year, month + args[0], date);
|
}
|
return Date.apply(null, args);
|
};
|