扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
判断日期合法性php程序,好多难理解的地方。
大家帮我看看这个程序:
源代码如下:
PHP code
<?
/*
这个函数可以用来检查年月日形式的日期合法性,您只要稍作修改便可以检查其它形式的日期合法性.
功能:日期合法性检查
返回: true(合法)/false(不合法)
参数:$ymd 年月日形式的日期
$sep 年月日之间的分隔符,默认为-
*/
function datecheck($ymd,$sep='-'){
$parts = explode($sep,$ymd);
$year = $parts[0];
$month = $parts[1];
$day = $parts[2];
if(isint($year) && isint($month) && isint($day)){
if(checkdate($month,$day,$year)) return true;
else return false;
}
else return false;
}
// [ php/inc/isint.php ] cvs 1.2
function isint($str){
$str = (string)$str;
$pos = 0;
$len = strlen($str);
for($i=0;$i<$len;$i++){
if($str[$i]=='0') $pos++;
else break;
}
$str = substr($str,$pos);
$int = (int)$str;
if($str==(string)$int) return true;
else return false;
}
//测试
$dates = array(
'2000-4-11' => '-',
'1900-2-1' => '-',
'2001-03-01' => '-',
'abaf' => '-',
'20.03.05' => '.'
);
while(list($date,$sep)=each($dates)){
if(datecheck($date,$sep)) echo $date.' 是合法日期<br>';
else echo $date.' 不是合法日期<br>';
}
//
?>
1. 是C语言风格的类型转换,
2. 那个函数是判断一个字符串是否是整数,直接判断是否含有数字之外的字符更加方便。
3. each是遍历数组,每次返回当前iterator的元素
while(list($date,$sep)=each($dates)){
if(datecheck($date,$sep)) echo $date.' 是合法日期 <br>';
else echo $date.' 不是合法日期 <br>';
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者