JS:日付型文字列の一致をチェックする

JavaScript

JavaScriptで 2005/08/152023-03-11 などの年月日で表される日付型文字列の一致をチェックして返す関数です。

/**
 * 日付型文字列の一致をチェック
 * @param {string} dateStr1  日付型文字列1 ex) 1999/05/30, 2005-12-11...
 * @param {string} dateStr2  日付型文字列2
 * @return {boolean} 2つの日付が一致するかどうか?
 */
const dateMatches = (dateStr1, dateStr2) => {
    // 日付型文字列をDate型に変換
    const dateFormX = new Date(dateStr1);
    const dateFormY = new Date(dateStr2);

    // 数値化して一致をチェック
    if(Number(dateFormX) == Number(dateFormY)){
        return true;
    }
    else{
        return false;
    }
}

使い方例

if(dateMatches("2023/8/15", "2023/8/15")){
    console.log("同じ日です");
}
else{
    console.log("違う日です");
}

結果

同じ日です

ちなみにDate型のまま一致の判定をしてしまうと別のオブジェクトという扱いの判定になるため日付の一致とはなりません。そのため、日付の一致にNumberを使用して数値化して判定しています。

コメント

タイトルとURLをコピーしました