php日期格式转换问题

时间:2011-08-27 23:26:45

标签: php date format

这里我的功能是尝试将日期转换为不同的格式。

/*  example:
*   dateString          =   '03/25/2010';
*   inputDateFormat     =   '%m/%d/%Y';
*   ouputDateFormat     =   'Y-m-d';
*   return              ->  '2010-03-25';
*/  
function formatDate($dateString,$inputFormat=NULL,$outputFormat=NULL){
    if($dateString==''||$dateString==NULL) return '';
    $t =  strptime($dateString,$inputFormat);
    return gmdate($outputFormat,mktime($t[tm_sec],$t[tm_min],$t[tm_hour],($t[tm_mon]+1),($t[tm_mday]+1),($t[tm_year]+1900)));
}

我的问题是

当我尝试使用以下行将此日期Wed, 19 Jan 2011 21:16:37 +0000转换为2011-01-19 21:16:37时:

echo formatDate('Wed, 19 Jan 2011 21:16:37 +0000','%a, %d %b %Y %H:%M:%S','Y-m-d H:i:s');

结果如下:

2011-01-21 11:16:21

为什么我要额外2天获得约会。 你有什么想法吗?

2 个答案:

答案 0 :(得分:5)

改为使用:

  function formatDate($dateString, $outputFormat=NULL){
      return date($outputFormat, strtotime($dateString));
  }

  echo formatDate('Wed, 19 Jan 2011 21:16:37 +0000','Y-m-d H:i:s');

答案 1 :(得分:4)

这是一个疯狂的猜测,但也许你需要设置yoru时区?

date_default_timezone_set()(需要PHP 5)