проблема конвертации формата даты в php - PullRequest
2 голосов
/ 28 августа 2011

Вот моя функция: я пытаюсь преобразовать даты в разные форматы.

/*  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 ]

5 голосов
/ 28 августа 2011

используйте это вместо:

  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');
4 голосов
/ 28 августа 2011

Это дикое предположение, но, может быть, вам нужно установить часовой пояс?

date_default_timezone_set () (требуется PHP 5)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...