日期字符串转时间戳

jerry PHP 2015年11月18日 收藏
我们可以使用php内置函数strtotime来格式化日期为时间戳,但是由于我的输入框没有使用日期控件,需要用户自己输入日期,为了更加对用户输入的友好,特写了一个非常基础的转时间戳方法,无论用户输入:20131122085959、2013-11-22 08:59:59、2013-11.22085959等等都可以正常格式化。
/**
 * 日期字符串转时间戳
 * Author:HongPing[hongping626@qq.com] 2013.11.22
 * @param string $date  时间字符串
 * @return unixtime
 */
function toUnix($date){
    if (empty ( $date )) {
        return '';
    }
    $fArr = str_split('1234567890');$dArr = str_split($date);
    $fmdate = '';
    foreach($dArr as $v){
        if(in_array($v,$fArr)){
            $fmdate.=$v;
        }
    }
    $year  =((int)substr($fmdate,0,4));//年
    $month =((int)substr($fmdate,4,2));//月
    $day   =((int)substr($fmdate,6,2));//天
    $hour  =((int)substr($fmdate,8,2));//时
    $minu  =((int)substr($fmdate,10,2));//分
    $send  =((int)substr($fmdate,12,2));//秒
    $hour=$hour?$hour:0;$minu=$minu?$minu:0;$send=$send?$send:0;$month=$month?$month:0;$day=$day?$day:0;$year=$year?$year:0;
    return  mktime($hour,$minu,$send,$month,$day,$year);
    //return strtotime($date);
}