Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/date-picker/src/helpers/ |
Upload File : |
import { cloneDate } from './clone-date'; import { getDaysInMonth } from './get-days-in-month'; export function addDate(date, unit, increment): Date { let newDate = cloneDate(date); if (!unit || increment === 0) { return newDate; } switch (unit.toLowerCase()) { case 'milli': newDate = new Date(date.getTime() + increment); break; case 'second': newDate = new Date(date.getTime() + (increment * 1000)); break; case 'minute': newDate = new Date(date.getTime() + (increment * 60000)); break; case 'hour': newDate = new Date(date.getTime() + (increment * 3_600_000)); break; case 'day': newDate.setUTCDate(date.getUTCDate() + increment); break; case 'week': newDate.setUTCDate(date.getUTCDate() + increment * 7); break; case 'month': { let day = date.getUTCDate(); if (day > 28) { const firstDayOfMonth = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1)); day = Math.min(day, getDaysInMonth(addDate(firstDayOfMonth, 'month', increment))); } newDate.setUTCDate(day); newDate.setUTCMonth(newDate.getUTCMonth() + increment); break; } case 'quarter': newDate = addDate(date, 'month', increment * 3); break; case 'year': newDate.setUTCFullYear(date.getUTCFullYear() + increment); break; default: // nothing } if (date.__utc) { newDate.__utc = true; } return newDate; }