php check date format code example

Example 1: php check if format is date

function validateDate($date, $format = 'Y-m-d')
{
    $d = DateTime::createFromFormat($format, $date);
    // The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue.
    return $d && $d->format($format) === $date;
}

Test cases:
var_dump(validateDate('2013-13-01'));  // false
var_dump(validateDate('20132-13-01')); // false
var_dump(validateDate('2013-11-32'));  // false
var_dump(validateDate('2012-2-25'));   // false
var_dump(validateDate('2013-12-01'));  // true
var_dump(validateDate('1970-12-01'));  // true
var_dump(validateDate('2012-02-29'));  // true
var_dump(validateDate('2012', 'Y'));   // true
var_dump(validateDate('12012', 'Y'));  // false

Example 2: php check if input is date

function isRealDate($date) { 
    if (false === strtotime($date)) { 
        return false;
    } 
    list($year, $month, $day) = explode('-', $date); 
    return checkdate($month, $day, $year);
}

Example 3: php all date formats

<?php
echo date("F j, Y, g:i a")."<br>";               // March 10, 2001, 5:16 pm
echo date("m.d.y")."<br>";                       // 03.10.01
echo date("j, n, Y")."<br>";                     // 10, 3, 2001
echo date("Ymd")."<br>";                         // 20010310
echo date('h-i-s, j-m-y, it is w Day')."<br>";   // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
echo date('\i\t \i\s \t\h\e jS \d\a\y.')."<br>"; // it is the 10th day.
echo date("D M j G:i:s T Y")."<br>";             // Sat Mar 10 17:16:18 MST 2001
echo date('H:m:s \m \i\s\ \m\o\n\t\h')."<br>";   // 17:03:18 m is month
echo date("H:i:s")."<br>";                       // 17:16:18
echo date("Y-m-d H:i:s")."<br>";                 // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Example 4: regex to check date format php

if (preg_match("/\d{4}\-\d{2}-\d{2}/", $date)) {
    echo 'true';
} else {
    echo 'false';
}