メモ:PHPで簡単な日付チェック

例としてYYYY-MM-DDでPOSTされた日付の書式チェックと妥当性の確認

//date_1という名前でPOST
$date1= (string)filter_input(INPUT_POST, ‘date_1’);

//YYYY-MM-DDの書式チェック
$pattern = '/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/';
$matches = array();
//書式 & 妥当性チェック
if(!preg_match($pattern, $date1, $matches) || !checkdate((int)$matches[2], (int)$matches[3], (int)$matches[1])) {
      $error_msg =  '日付が正しくありません。半角英数字で入力してください。';
 }