Почему 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);
}

я получаю ошибку dat1.getTime() не функция....

33
задан udaya 13 April 2010 в 07:12
поделиться

3 ответа

Это потому, что ваши переменные 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, поэтому я предпочитаю делать это вручную.

44
ответ дан 27 November 2019 в 18:06
поделиться

Для использования этой функции/метода необходим экземпляр класса Date .

Этот метод всегда используется в сочетании с объектом Date.

Смотрите код ниже :

var d = new Date();
d.getTime();

Ссылка : http://www.w3schools.com/jsref/jsref_getTime.asp

11
ответ дан 27 November 2019 в 18:06
поделиться

dat1 и dat2 - это строки в JavaScript. В прототипе String нет функции getTime. Я считаю, что вам нужна функция Date.parse (): http://www.w3schools.com/jsref/jsref_parse.asp

Вы бы использовали ее так:

var date = Date.parse(dat1);
5
ответ дан 27 November 2019 в 18:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: