Получить разницу между двумя датами, используя jquery - PullRequest
3 голосов
/ 01 мая 2011

Может ли кто-нибудь предложить плагин jQuery для расчета разницы между двумя датами (даты могут также содержать время) и отображать его как «32 дня», «13 часов», «20 минут» и т. Д.?

Ответы [ 5 ]

11 голосов
/ 03 апреля 2013

С помощью объекта native JavaScript Date вы можете добавлять, вычитать и делать многое другое. Это достаточно мощный для большинства ваших потребностей. При его использовании вы экономите килобайты размера страницы и делаете код понятным для всех (вероятно, 90% разработчиков JavaScript никогда не использовали плагины для вычисления дат)

В объекте Date я ненавижу то, что он не имеет встроенного отформатированного вывода .

Например, вы не можете сказать локализованный день недели или название месяца без разбора строки. Тогда datejs придет вам на помощь.

Что может делать объект Date?

var msMinute = 60*1000, 
    msDay = 60*60*24*1000,
    a = new Date(2012, 2, 12, /* days, hours*/ 23, 59, 59),
    b = new Date("2013 march 12"), /* string */
    c = new Date(),                /* now */
    d = new Date(c.getTime() + msDay - msMinute);       /* tomorrow - minute */


console.log(a.getUTCHours());
console.log(typeof (b - a + 1000));
console.log(Math.floor((b - a) / msDay) + ' full days between');
console.log(Math.floor(((b - a) % msDay) / msMinute) + ' full minutes between');
console.log('Today is ' + c.getDay() + ' day of week');
console.log('Tomorrow is ' + d.getDay() + ' day of week');
console.log('Your timezone offset is ' + c.getTimezoneOffset() + ' minutes');

Легко рассчитать дни до Рождества

И иногда в шутке больше правды, чем можно было ожидать OMG, a scary dream

6 голосов
/ 01 мая 2011

Вот довольно простая реализация Javascript, которую я только что взломал. Вы можете сделать это, чтобы продлить это на месяцы или годы или удалить множественное число для 1 значений, если это необходимо.

var dateDiff = function ( d1, d2 ) {
    var diff = Math.abs(d1 - d2);
    if (Math.floor(diff/86400000)) {
        return Math.floor(diff/86400000) + " days";
    } else if (Math.floor(diff/3600000)) {
        return Math.floor(diff/3600000) + " hours";
    } else if (Math.floor(diff/60000)) {
        return Math.floor(diff/60000) + " minutes";
    } else {
        return "< 1 minute";
    }
};

dateDiff(new Date(1990, 1, 1), new Date(1990, 1, 13)) // -> 12 days
4 голосов
/ 01 мая 2011

Я настоятельно рекомендую использовать превосходную datejs framework , чтобы легко выполнять все ваши вычисления даты и времени

2 голосов
/ 01 мая 2011

Я думаю jQuery EasyDate - это именно то, что вы ищете.

1 голос
/ 11 июня 2014
day1= $("#tMTLCLsDay").val();
month1= $("#tMTLCLsMnth").val();
year1= $("#tMTLCLsYr").val();
hour1= $("#tMTLCLs_HOUR").val();
min1= $("#tMTLCLs_MIN").val();
var Date1=month1+ "/" + day1+ "/" + year1+ " " + hour1 + ":" + min1+ ": 00" ;

day2= $("#tMTLCLsDay").val();
month2= $("#tMTLCLsMnth").val();
year2= $("#tMTLCLsYr").val();
hour3= $("#tMTLCLs_HOUR").val();
hour2= $("#tMTLCLs_MIN").val();
var Date2=month2+ "/" + day2+ "/" + year2+ " " + hour2 + ":" + hour2 + ": 00" ;


if(Date.parse(Date1)<Date.parse(Date2))
{
alert("Date 2 is large");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...