日期字符串转时间戳

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