Добавление дат в JavaScript в одну строку - PullRequest
3 голосов
/ 26 февраля 2010

Я пытаюсь выполнить манипуляции с датами с помощью JavaScript в одной строке, и у меня возникают проблемы с годом (а не месяцем или днем) Я понял эту ссылку . Я что-то упустил?

Код выглядит следующим образом:

var newyear = new Date((new Date()).getYear(), (new Date()).getMonth(), (new Date()).getDate()+5).getFullYear();
document.write(newyear);

Это дает мне "110".

Я не уверен, почему? Спасибо!

Ответы [ 3 ]

11 голосов
/ 26 февраля 2010
(new Date()).getYear()

Вы должны использовать getFullYear() здесь. getYear() в JS означает (год и минус 1900) .

1 голос
/ 26 февраля 2010
var newyear = new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate()+5).getFullYear();
0 голосов
/ 26 февраля 2010

Ошибка Y2K в стороне, это более простое выражение:

var newyear = new Date(new Date().setDate(new Date().getDate()+5)).getFullYear()

Объекты Date относительно дороги, и вы можете сделать это с одним объектом Date и меньшим количеством кода, если вы не предполагаете, что это должно быть одно выражение.

var d = new Date(); d.setDate(d.getDate()+5); var newyear = d.getFullYear()
...