2011-03-12 91 views
0

我将很多日期插入到数据库中。他们大多写入正常,所以我可以使用strtotime来获得'1299XXXXXX'的时间。PHP strtotime问题

然而,一些日期,是这样写的:日/月/年时/分/秒

echo strtotime('12/03/2011 18:00:52'); //this will get 132293165220 

因此,我不能插入所有的日期在我的数据库。如何解决问题?谢谢。

+0

请问您可以重新翻译一下您的问题吗?你是说你的用户输入的日期不符合格式? – Dimitry 2011-03-12 18:44:03

回答

1
$temp_date = strtotime('12/03/2011 18:00:52'); 
echo date('m/d/Y', $temp_date); 

其中, 'M/d/Y' 是你选择的格式:如果想充分 - >“M/d/YH: I:S'

如果仅仅日期部分 - > 'M/d/Y'

更上http://us3.php.net/manual/en/function.date.php

+0

right,use strtotime(date('Y-d-m H:i:s',strtotime('12/03/2011 18:00:52'))); // 1299949252' – 2011-03-12 18:50:25

0

您可以使用date函数抽取日期:

date('h:i:s', strtotime('12/03/2011 18:00:52')); 
1

我LOO ked周围,并没有得到任何全面的,所以我决定写我自己的日期转换器。好参数化。

function convert_datetime($datestr,$separator,$mysqltouk) { 
    if(!empty($datestr)) 
    { 
     if($mysqltouk=='dmy')   
      { 
     list($y,$m,$d) = explode($separator, $datestr); 
     $mk=mktime(0, 0, 0, $m, $d, $y); 
     $timestamp=strftime('%d-%m-%Y',$mk); 
     } 
     else if ($mysqltouk='ymd') 
      { 
      list($d, $m, $y) = explode($separator, $datestr); 
     $mk=mktime(0, 0, 0, $m, $d, $y); 
     $timestamp=strftime('%Y-%m-%d',$mk); 
      } 
    } 
     return $timestamp; 
}