目录
[TOC]
* * * * *
#### PHP strtotime() 函数
将英文文本日期时间解析为 Unix 时间戳:
~~~
echo(strtotime("now") . "
");
echo(strtotime("15 October 1980") . "
");
echo(strtotime("+5 hours") . "
");
echo(strtotime("+1 week") . "
");
echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "
");
echo(strtotime("next Monday") . "
");
echo(strtotime("last Sunday"));
?>
~~~
实例
~~~
/**
* 校验日期格式是否正确
*
* @param string $date 日期
* @param string $formats 需要检验的格式数组
* @return boolean
*/
function checkDateIsValid($date, $formats = array("Y-m-d", "Y/m/d")) {
$unixTime = strtotime($date);
if (!$unixTime) { //strtotime转换不对,日期格式显然不对。
return false;
}
//校验日期的有效性,只要满足其中一个格式就OK
foreach ($formats as $format) {
if (date($format, $unixTime) == $date) {
return true;
}
}
return false;
}
var_dump(checkDateIsValid("2013-09-10")); //输出true
var_dump(checkDateIsValid("2013-09-ha")); //输出false
var_dump(checkDateIsValid("2012-02-29")); //输出true
var_dump(checkDateIsValid("2013-02-29")); //输出false
?>
~~~
#### PHP checkdate() 函数
检查一些日期是否是有效的格利高里日期:
实例
~~~
var_dump(checkdate(12,31,-400)); //bool(false)
var_dump(checkdate(2,29,2003));//bool(false)
var_dump(checkdate(2,29,2004));//bool(true)
?>
~~~
字符串格式是否是有效的格利高里日期:
~~~
function checkDateStr($mydate) {
list($yy,$mm,$dd)=explode("-",$mydate);
if (is_numeric($yy) && is_numeric($mm) && is_numeric($dd))
{
return checkdate($mm,$dd,$yy);
}
return false;
}
~~~