это мой код, и я получаю «Uncaught TypeError: undefined не является функцией», что я делаю неправильно?Javascript date undefined error
var myDate = new Date().setDate(17);
document.getElementById("result").innerHTML = myDate.getDate();
это мой код, и я получаю «Uncaught TypeError: undefined не является функцией», что я делаю неправильно?Javascript date undefined error
var myDate = new Date().setDate(17);
document.getElementById("result").innerHTML = myDate.getDate();
setDate
модифицирует объект, который он вызывается и возвращает undefined
. Если вы хотите, чтобы somethingelse
относятся к дате, что today
называют, но изменение в день, вы можете скопировать today
, а затем изменить somethingelse
:
var today = new Date();
var somethingelse = new Date(today.getTime());
somethingelse.setDate(17);
document.getElementById("result").innerHTML = somethingelse.getDate();
Конечно, если вы не заботитесь о сохранении того, что было в today
, вы можете, конечно, изменить это, не создавая копию.
var date = new Date();
date.setDate(17);
document.getElementById("result").innerHTML = date.getDate();
'new Date (today)' будет конвертировать * сегодня * в строку, затем проанализировать строку обратно на Date, рассмотреть 'new Date (+ today)', что эквивалентно использованию 'today.getTime()', но меньше тип. ;-) Заметим также, что для даты, подобной 21 января 15, вышеуказанный метод скопирует дату 21 января 1915 года в IE и некоторых других браузерах. Неясное наследие двухзначных лет, но одна из тех вещей, которые когда-нибудь укусят кого-то ... – RobG
@RobG: Спасибо за предложение. – icktoofay
Это много достаточно: Вы можете взять тот же объект today
и set
и get
дату для этого объекта.
var today = new Date();
today.setDate(17);
document.getElementById("result").innerHTML = today.getDate();
.. и почему переопределения 'somethingelse', когда он не используется в первый раз? – Rhumborl
Третий вар бесполезен. Вам нужно только объявить переменную один раз, как вы уже сделали со вторым var. – Havvy