php checkdateを使って、日付が正しいかを判定する

  • 作成日 2020.12.14
  • php
php checkdateを使って、日付が正しいかを判定する

phpで、checkdateを使用して、日付が正しいかを判定するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

checkdate使い方

checkdateを使用すれば、日付が正しいかを判定することが可能です。

checkdate(月, 日, 年);
// 正しければ true 正しくなければ false

以下は、うるう年と30日の月と31日の月の日付が正しいかを判定するサンプルコードとなります。

<?php

// うるう年 check
echo (checkdate(2, 29, 2020) ? '存在します' : '存在しません').PHP_EOL;
// 存在します
echo (checkdate(2, 29, 2021) ? '存在します' : '存在しません').PHP_EOL;
// 存在しません

// 30日31日 check
echo (checkdate(4, 30, 2020) ? '存在します' : '存在しません').PHP_EOL;
// 存在します
echo (checkdate(4, 31, 2020) ? '存在します' : '存在しません').PHP_EOL;
// 存在しません

区切り文字がある場合は、listとexplodeを使用して分割して使用することができます。

<?php

$str = '2020/02/29';

list($y, $m, $d) = explode('/', $str);

// うるう年 check
echo (checkdate($m, $d, $y) ? '存在します' : '存在しません').PHP_EOL;
// 存在します