当前位置:Gxlcms > PHP教程 > PHP将一个日期字符串转换成举例来说当前的天数

PHP将一个日期字符串转换成举例来说当前的天数

时间:2021-07-01 10:21:17 帮助过:4人阅读

PHP将一个日期字符串转换成举例当前的天数

输入为一个日期字符串,例如:2011-3-23

输出为举例当前的天数,例如:1

?

代码为:

?

    public static function convertDateToLong($dateStr){
        $checkPattern = "/^\d{4}(((-\d{1,2}){2})|((\.\d{1,2}){2})|((\/\d{1,2}){2}))$/";
        $date = substr(trim($dateStr),0,strpos(trim($dateStr)," ")>0 ? strpos(trim($dateStr)," ") : strlen(trim($dateStr)));
        if(preg_match($checkPattern,$date)){
            preg_match("/([-\/.])/",$date,$outer);
            $dilimeter = $outer[1];
            list($year,$month,$day) = explode($dilimeter,$date);
            if(checkdate($month,$day,$year)){
                $spsec = time()-mktime(0,0,0,$month,$day,$year);
                if($spsec < 0) throw new Exception("date can not be after today!!!");
                $spday = floor($spsec/24/60/60);
                return $spday;
            }
            else{
                throw new Exception("the date input is not a valid date");
            }
        }
        else{
            throw new Exception("the dateStr is wrong formatted!!!");
        }
    }

1 楼 bardo 2011-03-26

丢开有效性检验不说,这个代码绕的弯子太大了。算天数只要一代码:
$day=floor((time()-strtotime($date))/86400);

2 楼 liuzhiqiangruc 2011-03-30

bardo 写道

丢开有效性检验不说,这个代码绕的弯子太大了。算天数只要一代码:
$day=floor((time()-strtotime($date))/86400);


确实,strtotime是可以的,多谢指点。:-)

3 楼 liuzhiqiangruc 2011-03-30

liuzhiqiangruc 写道

bardo 写道

丢开有效性检验不说,这个代码绕的弯子太大了。算天数只要一代码:
$day=floor((time()-strtotime($date))/86400);


确实,strtotime是可以的,多谢指点。:-)


而且,strtotime支持的日期格式很丰富,学习了。

4 楼 liuzhiqiangruc 2011-03-30

liuzhiqiangruc 写道

liuzhiqiangruc 写道

bardo 写道

丢开有效性检验不说,这个代码绕的弯子太大了。算天数只要一代码:
$day=floor((time()-strtotime($date))/86400);


确实,strtotime是可以的,多谢指点。:-)


而且,strtotime支持的日期格式很丰富,学习了。


http://www.php.com/manual/en/datetime.formats.date.php

人气教程排行