日期格式的PHP日期格式,如“23 Nov,2015 16:44:26 GMT”

时间:2016-01-08 06:04:05

标签: php date date-format

我正在刮痧,我得到了一个像23 Nov, 2015 16:44:26 GMT这样的日期。我想将其转换为Y-m-d H:i:s,以便我可以将其保存到数据库日期时间字段。

我试过这样:

echo date("Y-m-d H:i:s", strtotime("23 Nov, 2015 16:44:26 GMT"));

我还删除了preg_replace然后

的GMT
echo date("Y-m-d H:i:s", strtotime("23 Nov, 2015 16:44:26"));

它正在给予1970-01-01 01:00:00

3 个答案:

答案 0 :(得分:2)

您可以使用DateTime::createFromFormat将字符串转换为DateTime对象。 http://php.net/manual/en/datetime.createfromformat.php

答案 1 :(得分:1)

试试这个

<?php
$datestr = "23 Nov, 2015 16:44:26 GMT";
$datestr = str_replace(",", "", $datestr);
$dateArray = explode(" ", $datestr) ;
unset($dateArray[count($dateArray)-1]);

$newDateStr = '';
$i=0;
foreach ($dateArray as $dateArrayValue)
{

    $hyphenStr = " ";
    if($i>0 && $i != 3)
    {
       $hyphenStr = "-";  
    }

   $newDateStr .= $hyphenStr.$dateArrayValue ;
   $i++;
}
$newDateStr = trim($newDateStr);

echo date("Y-m-d H:i:s", strtotime($newDateStr));
?>

另请访问:http://php.net/manual/en/function.strtotime.php

答案 2 :(得分:1)

您可以使用DateTime创建DateTime::createFromFormat

对于&#39; GMT&#39;部分来自您的约会,您可以使用&#39; T&#39;在format中为时区缩写。

$dateTime = DateTime::createFromFormat('d M, Y H:i:s T', '23 Nov, 2015 16:44:26 GMT');

echo $dateTime->format('Y-m-d H:i:s');

将导致:

  

2015-11-23 16:44:26

Demo