PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

date_create> <Date/Time
Last updated: Mon, 26 Nov 2007

view this page in

checkdate

(PHP 4, PHP 5)

checkdate — 验证一个格里高里日期

说明

bool checkdate ( int $month , int $day , int $year )

如果给出的日期有效则返回 TRUE,否则返回 FALSE。检查由参数构成的日期的合法性。日期在以下情况下被认为有效:

  • year 的值是从 1 到 32767
  • month 的值是从 1 到 12
  • Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。

Example#1 checkdate() 例子

<?php
var_dump
(checkdate(12312000));
var_dump(checkdate(2292001));
?>

上例将输出:

bool(true)
bool(false)

参见 mktime()strtotime()



date_create> <Date/Time
Last updated: Mon, 26 Nov 2007
 
add a note add a note User Contributed Notes
checkdate
Anonymous
10-Jun-2008 06:20
por favor, corregid:
s/anyo/año/
el dot vartauy__ at t__gmail dot com
01-Mar-2008 02:18
for funny leap year detection:
<?php
function is_leap($year=NULL) {
    return
checkdate(2, 29, ($year==NULL)? date('Y'):$year); // true if is a leap year
}
?>
wasile_ro[at]yahoo[dot]com
08-Oct-2007 10:30
here's a cool function to validate a mysql datetime:

function isValidDateTime($dateTime)
{
    if (preg_match("/^(\d{4})-(\d{2})-(\d{2}) ([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $dateTime, $matches)) {
        if (checkdate($matches[2], $matches[3], $matches[1])) {
            return true;
        }
    }

    return false;
}
jens wittmann
28-Aug-2007 11:29
for checking the rime use this:

function checktime($hour, $minute) {
    if ($hour > -1 && $hour < 24 && $minute > -1 && $minute < 60) {
        return true;
    }
}
brenig code
15-Aug-2007 02:21
<?php

/**
* check a date combo of the 2
*/
function checkData($date)
{
    if (!isset(
$date) || $date=="")
    {
        return
false;
    }
  
    list(
$dd,$mm,$yy)=explode("/",$date);
    if (
$dd!="" && $mm!="" && $yy!="")
    {
    if (
is_numeric($yy) && is_numeric($mm) && is_numeric($dd))
        {
            return
checkdate($mm,$dd,$yy);

        }
    }  
    return
false;

}
?>
a34 at yahoo dot com
09-Jul-2007 08:21
checkData function posted below does not consider a date entered such as 03/27c/2000.   The c will cause it to crash.  Here is the fix.

function checkData($mydate) {
      
    list($yy,$mm,$dd)=explode("-",$mydate);
    if (is_numeric($yy) && is_numeric($mm) && is_numeric($dd))
    {
        return checkdate($mm,$dd,$yy);
    }
    return false;           
}
manuel84**at**mp4**dot**it
04-Dec-2006 11:49
If you have a date like this gg/mm/aaaa and you'd like to verify that it is in the Italian Format you can use a function like this.
For other date format you can take this code and simply modify the list and explode line
<?php
/**
* check a date in the Italian format
*/
function checkData($date)
{
    if (!isset(
$date) || $date=="")
    {
        return
false;
    }
   
    list(
$dd,$mm,$yy)=explode("/",$date);
    if (
$dd!="" && $mm!="" && $yy!="")
    {
        return
checkdate($mm,$dd,$yy);
    }
   
    return
false;
}
?>

date_create> <Date/Time
Last updated: Mon, 26 Nov 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites