jsで日付の整合性チェックを行う
NULL、存在、過去チェックを行う。
でもなんかちょっと違う様な・・・Macだと正規表現の書き方違ったりする?
(↑Macだと¥じゃなくて\じゃないとダメみたい。)
直したらまた書きます。
function changeCheck() {
var date = document.getElementById('device_change_date').value;
// 入力フォーマットチェック
if(!date || !date.match(/^¥d{4}¥-¥d{2}¥-¥d{2}$/)){
alert('yyyy-mm-dd のように入力してください')
return false;
}
// 日付存在チェック
var arrDate = date.split("-");
dt = new Date(date);
if ( dt.getFullYear()!=arrDate[0] || dt.getMonth()!=arrDate[1]-1
|| dt.getDate()!=arrDate[2] ) {
alert('その日付は存在しません');
return false;
}
//今日の日付を指定
var now = new Date();
//今日から「ymdのみ」を取得。「new Date();」だと「ymd 9:00」となってしまい、正確な比較が出来なくなる。
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
if(today > dt){
alert('入力した日付は過去です');
return false;
}
document.deviceForm.action="/admin/Confirm.html";
return true;
}