checkdate

関数の概要

PHPの checkdate 関数は、指定した日付(年・月・日)が正しいかどうかを判定します。日付の妥当性を簡単に確認できるため、入力フォームの検証や日付関連の処理で広く利用されます。

パラメータの説明

  • int $month – 月を表す整数(1〜12が有効)
  • int $day – 日を表す整数(1〜31が有効な範囲。ただし月によって異なります)
  • int $year – 年を表す整数(例:2024)

戻り値

指定された年月日が有効な場合は true を返し、不正な日付の場合は false を返します。

使用例

基本的な使い方

<?php
if (checkdate(2, 29, 2024)) {
    echo "2024年2月29日は有効な日付です。";
} else {
    echo "日付が無効です。";
}
?>

2024年はうるう年なので、2月29日は正しい日付として判定されます。

無効な日付のチェック

<?php
if (checkdate(4, 31, 2023)) {
    echo "2023年4月31日は有効な日付です。";
} else {
    echo "日付が無効です。";
}
?>

4月は30日までしかないため、「4月31日」は無効な日付と判定されます。

ユーザー入力の日付検証

<?php
$month = intval($_POST['month']);
$day = intval($_POST['day']);
$year = intval($_POST['year']);

if (checkdate($month, $day, $year)) {
    echo "入力された日付は有効です。";
} else {
    echo "無効な日付が入力されました。";
}
?>

フォームから受け取った年月日を安全にチェックする際に便利です。

関連する関数

  • date() – 現在の日付や時刻を取得・フォーマットする
  • strtotime() – 文字列をUNIXタイムスタンプに変換
  • mktime() – 指定日時のUNIXタイムスタンプを生成

まとめ

checkdate 関数は、簡単に日付の妥当性をチェックできる便利な関数です。年・月・日の組み合わせが実際に存在する日付かどうかを判定するため、フォームバリデーションや日付処理でのエラー防止に活用しましょう。