С помощью объекта 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](https://i.stack.imgur.com/62J0l.gif)