扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
判断日期合法性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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。