1. ホーム
  2. javascript

[解決済み] ある日付が2つの日付の間にあるかどうかをチェックする

2022-11-11 21:54:59

質問

をチェックする必要があります。 date - の中の文字列が dd/mm/yyyy の書式で表されます。 は、同じ書式を持つ他の二つの日付の間に位置します。 dd/mm/yyyy

これを試してみましたが、うまくいきません。

var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "02/07/2013";

var from = Date.parse(dateFrom);
var to   = Date.parse(dateTo);
var check = Date.parse(dateCheck );

if((check <= to && check >= from))      
    alert("date contained");

デバッガーを使って確認したところ tofrom の変数には isNaN の値を持っています。 あなたは私を助けることができますか?

どのように解決するのですか?

Date.parse は、以下の形式をサポートしています。 mm/dd/yyyy ではなく dd/mm/yyyy . 後者については、moment.js のようなライブラリを使用するか、以下のようにします。

var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "02/07/2013";

var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateCheck.split("/");

var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]);  // -1 because months are from 0 to 11
var to   = new Date(d2[2], parseInt(d2[1])-1, d2[0]);
var check = new Date(c[2], parseInt(c[1])-1, c[0]);

console.log(check > from && check < to)