HTML Diff
0 added 1 removed
Original 2026-01-01
Modified 2026-02-26
1 <h2>Ответы</h2>
1 <h2>Ответы</h2>
2 - <p>0</p>
 
3 <p>JavaScript предоставляет объект Date, с помощью которого можно легко работать с датами и временными интервалами.</p>
2 <p>JavaScript предоставляет объект Date, с помощью которого можно легко работать с датами и временными интервалами.</p>
4 function dateDiff(startDate, endDate) { // Преобразование строковых дат в объект Date const start = new Date(startDate); const end = new Date(endDate); // Получаем разницу в миллисекундах const diffTime = end - start; // Конвертируем миллисекунды в дни const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); // Вычисляем количество лет, месяцев и дней const years = end.getFullYear() - start.getFullYear(); const months = end.getMonth() - start.getMonth(); const days = end.getDate() - start.getDate(); // Корректируем, если разница по месяцам или дням отрицательная let totalYears = years; let totalMonths = months; let totalDays = days; if (totalDays &lt; 0) { totalMonths -= 1; // Получаем количество дней в предыдущем месяце const lastMonth = new Date(end.getFullYear(), end.getMonth(), 0); totalDays += lastMonth.getDate(); } if (totalMonths &lt; 0) { totalYears -= 1; totalMonths += 12; } return { years: totalYears, months: totalMonths, days: totalDays, }; } // Пример использования const difference = dateDiff("2020-01-15", "2023-03-10"); console.log(`${difference.years} года, ${difference.months} месяца, ${difference.days} дня`);<p>Для более сложных операций с датами вы можете использовать специализированные библиотеки, такие как<a>date-fns</a>или<a>Moment.js</a>(хотя Moment.js считается устаревшей библиотекой и не рекомендуется для новых проектов).</p>
3 function dateDiff(startDate, endDate) { // Преобразование строковых дат в объект Date const start = new Date(startDate); const end = new Date(endDate); // Получаем разницу в миллисекундах const diffTime = end - start; // Конвертируем миллисекунды в дни const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); // Вычисляем количество лет, месяцев и дней const years = end.getFullYear() - start.getFullYear(); const months = end.getMonth() - start.getMonth(); const days = end.getDate() - start.getDate(); // Корректируем, если разница по месяцам или дням отрицательная let totalYears = years; let totalMonths = months; let totalDays = days; if (totalDays &lt; 0) { totalMonths -= 1; // Получаем количество дней в предыдущем месяце const lastMonth = new Date(end.getFullYear(), end.getMonth(), 0); totalDays += lastMonth.getDate(); } if (totalMonths &lt; 0) { totalYears -= 1; totalMonths += 12; } return { years: totalYears, months: totalMonths, days: totalDays, }; } // Пример использования const difference = dateDiff("2020-01-15", "2023-03-10"); console.log(`${difference.years} года, ${difference.months} месяца, ${difference.days} дня`);<p>Для более сложных операций с датами вы можете использовать специализированные библиотеки, такие как<a>date-fns</a>или<a>Moment.js</a>(хотя Moment.js считается устаревшей библиотекой и не рекомендуется для новых проектов).</p>
5 <p>Пример с date-fns:</p>
4 <p>Пример с date-fns:</p>
6 import { differenceInYears, differenceInMonths, differenceInDays } from 'date-fns'; const startDate = new Date("2020-01-15"); const endDate = new Date("2023-03-10"); const years = differenceInYears(endDate, startDate); const months = differenceInMonths(endDate, startDate) % 12; // остаток от деления на 12 для месяцев const days = differenceInDays(endDate, startDate) - (years * 365 + months * 30); // упрощенная формула console.log(`${years} года, ${months} месяца, ${days} дня`);
5 import { differenceInYears, differenceInMonths, differenceInDays } from 'date-fns'; const startDate = new Date("2020-01-15"); const endDate = new Date("2023-03-10"); const years = differenceInYears(endDate, startDate); const months = differenceInMonths(endDate, startDate) % 12; // остаток от деления на 12 для месяцев const days = differenceInDays(endDate, startDate) - (years * 365 + months * 30); // упрощенная формула console.log(`${years} года, ${months} месяца, ${days} дня`);