JavaScriptプログラムに関する各種メモ書き

Javascriptで「1. 日付が正しいか?」「2. 実際に存在する日付かどうか」をチェックする

● Javascriptで「1. 日付が正しいか?」「2. 実際に存在する日付かどうか」をチェックする

2021/04/31 などの存在しない日付の場合も false を返します。

/**
 * 渡された文字列の「1.日付が正しいか?」「2.実際に存在する日付かどうか」をチェックする
 *
 * @param   string      date_str        (例:2021/01/15)(例:2021-01-15)
 */

function is_date_valid( date_str )
{
    const date_obj = new Date(date_str);

    // 日付が Invalid Date の場合は false
    if ( dateFns.isValid(new Date(date_str)) === false ){
        alert(`日付 ${date_str} が正しくありません`);
        return false;
    }

    if ( date_str.match(/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/) ){
        var ar = date_str.split('/');
    }
    else if ( date_str.match(/[0-9]{4}\-[0-9]{2}\-[0-9]{2}/) ){
        var ar = date_str.split('-');
    }

    var year = ar[0];
    var month = ar[1];
    var day = ar[2];

    var check_month = date_obj.getMonth() + 1;

    console.log( '● year/month/day ● check_month' );
    console.log( `${year}/${month}/${day}  : ${check_month}` );

    if ( parseInt(month) !== parseInt(check_month) ){
        alert(`日付 ${date_str} は存在しません`);
        return false;
    }

    return true;
}
No.2105
11/30 09:53

edit