@chayns-components/date
Version:
A set of beautiful React components for developing your own applications with chayns.
114 lines (113 loc) • 4.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.subYears = exports.startOfWeek = exports.startOfMonth = exports.isYesterday = exports.isWithinInterval = exports.isTomorrow = exports.isToday = exports.isSameMonth = exports.isSameDay = exports.isMorning = exports.isCurrentYear = exports.isBefore = exports.isAfter = exports.getIsDateNearToday = exports.endOfWeek = exports.eachDayOfInterval = exports.differenceInCalendarMonths = exports.addYears = exports.addDays = void 0;
const isToday = date => {
const today = new Date();
return today.toDateString() === date.toDateString();
};
exports.isToday = isToday;
const isTomorrow = date => {
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
return tomorrow.toDateString() === date.toDateString();
};
exports.isTomorrow = isTomorrow;
const isYesterday = date => {
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
return yesterday.toDateString() === date.toDateString();
};
exports.isYesterday = isYesterday;
const isCurrentYear = date => {
const currentYear = new Date().getFullYear();
const yearOfGivenDate = date.getFullYear();
return currentYear === yearOfGivenDate;
};
exports.isCurrentYear = isCurrentYear;
const getIsDateNearToday = date => {
const today = new Date();
today.setHours(0, 0, 0, 0);
const targetDate = new Date(date);
targetDate.setHours(0, 0, 0, 0);
const diffInDays = (targetDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);
return diffInDays === 0 || diffInDays === -1 || diffInDays === 1;
};
exports.getIsDateNearToday = getIsDateNearToday;
const isMorning = date => {
const hours = date.getHours();
return hours >= 0 && hours < 12;
};
exports.isMorning = isMorning;
const isAfter = (firstDate, secondDate) => {
return firstDate.getTime() > secondDate.getTime();
};
exports.isAfter = isAfter;
const isBefore = (firstDate, secondDate) => {
return firstDate.getTime() < secondDate.getTime();
};
exports.isBefore = isBefore;
const startOfMonth = date => {
return new Date(date.getFullYear(), date.getMonth(), 1);
};
exports.startOfMonth = startOfMonth;
const addYears = (date, years) => {
return new Date(date.getFullYear() + years, date.getMonth(), date.getDate());
};
exports.addYears = addYears;
const differenceInCalendarMonths = (firstDate, secondDate) => {
return (firstDate.getFullYear() - secondDate.getFullYear()) * 12 + (firstDate.getMonth() - secondDate.getMonth());
};
exports.differenceInCalendarMonths = differenceInCalendarMonths;
const isSameDay = (firstDate, secondDate) => {
return firstDate.getFullYear() === secondDate.getFullYear() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getDate() === secondDate.getDate();
};
exports.isSameDay = isSameDay;
const isSameMonth = (firstDate, secondDate) => {
return firstDate.getFullYear() === secondDate.getFullYear() && firstDate.getMonth() === secondDate.getMonth();
};
exports.isSameMonth = isSameMonth;
const isWithinInterval = (date, interval) => {
return date.getTime() >= interval.start.getTime() && date.getTime() <= interval.end.getTime();
};
exports.isWithinInterval = isWithinInterval;
const subYears = (date, years) => {
return new Date(date.getFullYear() - years, date.getMonth(), date.getDate());
};
exports.subYears = subYears;
const startOfWeek = date => {
const day = date.getDay();
const diff = day === 0 ? -6 : 1 - day;
const start = new Date(date);
start.setDate(date.getDate() + diff);
start.setHours(0, 0, 0, 0);
return start;
};
exports.startOfWeek = startOfWeek;
const endOfWeek = date => {
const day = date.getDay();
const diff = day === 0 ? 0 : 7 - day;
const end = new Date(date);
end.setDate(date.getDate() + diff);
end.setHours(23, 59, 59, 999);
return end;
};
exports.endOfWeek = endOfWeek;
const eachDayOfInterval = interval => {
const days = [];
const currentDate = new Date(interval.start);
while (currentDate <= interval.end) {
days.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
return days;
};
exports.eachDayOfInterval = eachDayOfInterval;
const addDays = (date, days) => {
const result = new Date(date);
result.setDate(date.getDate() + days);
return result;
};
exports.addDays = addDays;
//# sourceMappingURL=date.js.map