Dec
10

php 日期函数扩展

/*对输入日期格式为2006-01-01或2006/1/1或2006.01.01或06.12.20转化为标准的YYYY-MM-DD*/function Formatdate($idate) {        $fm= "-./ ";        $p1 = strtok($idate,$fm);        $p2 = strtok($fm);        $p3 = strtok($fm);        $p4 = strtok($fm);        $date= ""; $y= ""; $m= ""; $d= "";        if (($p1>0 && $p1<32) && ($p2>0 && $p2<13) && ($p3>32)) { $y=$p3; $m=$p2; $d=$p1; }// 检查 'd.m.y'        if ($y ==  "" && ($p1>32) && ($p2>0 && $p2<13) && ($p3>0 && $p3<32)) { $y=$p1; $m=$p2; $d=$p3; }//  检查 'y.m.d'        if ($y ==  "" && ($p3== "") && ($p2>0 && $p2<13) && ($p1>0 && $p1<32)) { $y=date( "Y"); $m=$p2; $d=$p1; }        //  检查 'd.m'        if ($y ==  "" && ($p3== "") && ($p2== "") && ($p1>0 && $p1<32)) { $y=date( "Y"); $m=date( "m"); $d=$p1; }        //  检查 'd'        if ($y!= "" && $y<=99) {// 为年份添加 1900 或 2000                 if ($y>=70) $y = $y + 1900;                if ($y<70) $y = $y + 2000;                }        if ($y!= "")        if (checkdate($m, $d, $y))        $date= "$y-$m-$d";        return $date;}/*选择日期列表$type "y m w d"分别是年月周日 必须填写$default == 缺省值            必须填写*/function ymwd_selectlist($default,$type) {        switch ($type) :                case "y" :        $ds = 1900;        $de = 2050;        $format = '%04d';        break;  //年份                case "m" :        $ds = 1;        $de = 12;        $format = '%02d';        break;      //月份                case "w" :        $ds = 1;        $de = 53;        $format = '%02d';        break;      //周数                case "d" :        $ds = 1;        $de = 31;        $format = '%02d';        break;      //日数                endswitch ;        $selectlist = "" ;        For ($i=$ds;$i<=$de;$i++)         {                $j=sprintf($format,$i);                $selectlist .= "<OPTION value='$j'>$j</OPTION>" ;                }        if ($default<>"") {                $default = sprintf($format,$default);                $selectlist = str_replace("'$default'","'$default' selected",$selectlist) ;                }        return $selectlist ;        }