ホームページ  >  記事  >  バックエンド開発  >  PHP は日付形式の正当性を検証する方法を学習していますか? (strtotime() と date() を使用)

PHP は日付形式の正当性を検証する方法を学習していますか? (strtotime() と date() を使用)

little bottle
little bottle転載
2019-04-24 10:56:492543ブラウズ

この記事では主に、PHP を使用して日付形式が正当かどうかを確認する方法について説明します。これには一定の参考値があります。困っている友人はそれについて学ぶことができます。お役に立てれば幸いです。

バックエンド開発では、フロントエンドから渡されたパラメータの正当性を検証する必要があることがよくあります。日付パラメータを検証する場合は、次の方法で検証できます:

/**
 * 校验日期格式是否合法
 * @param string $date
 * @param array $formats
 * @return bool
 */
function isDateValid($date, $formats = array('Y-m-d', 'Y/m/d')) {

    $unixTime = strtotime($date);
    if(!$unixTime) { //无法用strtotime转换,说明日期格式非法
        return false;
    }

    //校验日期合法性,只要满足其中一个格式就可以
    foreach ($formats as $format) {
        if(date($format, $unixTime) == $date) {
            return true;
        }
    }

    return false;
}

説明:
strtotime() 関数だけを使用して時間を正確に検証できないのはなぜですか?
日付 2018-02-31 など、strtotime() を使用して正しい形式の日付をタイムスタンプに変換できる限り、実際には論理的に言えば、この日付は存在しませんが、それでも変換できるからです。 strtotime() 関数を使用して変換できます。タイムスタンプに正常に変換されるため、date() を使用してタイムスタンプを標準形式に変換し、受信した日付と比較する必要があります。それらが等しくない場合は、受信日も不正であることを意味します。
PHP 自体にも時刻を確認する関数があり、<span style='font-family: 微软雅黑, "Microsoft YaHei";'>checkdate()</span> この関数には、月、日、年の 3 つのパラメータが必要です。たとえば、上記の日付は、次のように checkdate 関数を呼び出すことで検出できます

if(checkdate(2, 31, 2018)) {
    echo &#39;日期格式正确&#39;;
} else {
    echo &#39;日期格式不正确&#39;;
}

関連チュートリアル:PHP ビデオ チュートリアル

以上がPHP は日付形式の正当性を検証する方法を学習していますか? (strtotime() と date() を使用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。