Я искал 4 часа и не нашел решения, чтобы получить разницу между двумя датами в годах, месяцах и днях в JavaScript, например: 10 апреля 2010 года было 3 года, x месяц и год дней назад.
Есть много решений, но они предлагают только разницу в формате дней или месяцев ИЛИ лет, или они неверны (что означает не заботиться о фактическом количестве дней в месяц или високосных годах и т.д.)., Неужели это так сложно?
Я посмотрел:
- http://momentjs.com/ → может выдавать разницу только в течение лет, месяцев, дней OR
- http://www.javascriptkit.com/javatutors/datedifference.shtml
- http://www.javascriptkit.com/jsref/date.shtml
- http://timeago.yarp.com/
- www.stackoverflow.com → Функция поиска
В php это легко, но, к сожалению, я могу использовать только клиентский script для этого проекта. Любая библиотека или фреймворк, которые могут это сделать, тоже будут хороши.
Ниже приведен список ожидаемых результатов для различий даты:
//Expected output should be: "1 year, 5 months".
diffDate(new Date('2014-05-10'), new Date('2015-10-10'));
//Expected output should be: "1 year, 4 months, 29 days".
diffDate(new Date('2014-05-10'), new Date('2015-10-09'));
//Expected output should be: "1 year, 3 months, 30 days".
diffDate(new Date('2014-05-10'), new Date('2015-09-09'));
//Expected output should be: "9 months, 27 days".
diffDate(new Date('2014-05-10'), new Date('2015-03-09'));
//Expected output should be: "1 year, 9 months, 28 days".
diffDate(new Date('2014-05-10'), new Date('2016-03-09'));
//Expected output should be: "1 year, 10 months, 1 days".
diffDate(new Date('2014-05-10'), new Date('2016-03-11'));