1. ホーム
  2. javascript

[解決済み] JavaScriptのgetTime()はなぜ関数ではないのですか?

2022-02-06 04:03:59

質問

以下の機能を使いました。

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()` is not a function

解決方法は?

それは、あなたの dat1dat2 は単なる文字列です。

それらをパースして 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では、手動で行うことをお勧めします。