Почему javascript getTime() не является функцией?
Я использовал следующую функцию:
function datediff()
{
var dat1 = document.getElementById('date1').value;
alert(dat1);//i get 2010-04-01
var dat2 = document.getElementById('date2').value;
alert(dat2);// i get 2010-04-13
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var diffDays = Math.abs((dat1.getTime() - dat2.getTime())/(oneDay));
alert(diffDays);
}
i получить ошибку dat1.getTime()
не является функцией....
Ответы
Ответ 1
Это потому, что ваши переменные dat1
и dat2
являются просто строками.
Вы должны проанализировать их, чтобы получить объект Date
, для этого формата я всегда использую следующую функцию:
// parse a date in yyyy-mm-dd format
function parseDate(input) {
var parts = input.match(/(\d+)/g);
// new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based
}
Я использую эту функцию, потому что метод Date.parse(string)
(или new Date(string)
) зависит от реализации, а формат yyyy-MM-dd будет работать на современном браузере, но не на IE, поэтому я предпочитаю делать это вручную.
Ответ 2
Чтобы использовать эту функцию/метод, вам нужен экземпляр класса Дата.
Этот метод всегда используется вместе с объектом Дата.
Смотрите код ниже:
var d = new Date();
d.getTime();
Ссылка: http://www.w3schools.com/jsref/jsref_getTime.asp
Ответ 3
dat1 и dat2 - строки в JavaScript. В прототипе String нет функции getTime. Я считаю, что вам нужна функция Date.parse(): http://www.w3schools.com/jsref/jsref_parse.asp
Вы бы использовали его следующим образом:
var date = Date.parse(dat1);