从 "Fri, 10 Jun 2016 14:30:38 -0500" 转换为 DATETIME

Convert to DATETIME from "Fri, 10 Jun 2016 14:30:38 -0500"

我正在尝试从页面中提取 RSS 数据并将其上传到我的数据库。

示例:

<dc:date>Fri, 10 Jun 2016 14:30:38 -0500</dc:date>

-0500 是问题所在。

我平时做的事情:

    $dc1 = $xml->channel->item[$i]->children($namespaces["dc"]);
    $pubDate1 = $dc1->date;
    $pubDate = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $pubDate1)));

我应该以不同的方式定义 $pubDate 吗?

如果你所有的约会对象都有最后一部分,也许这段代码有效。但如果最后一部分 (-0500) 出现在其中一些中,它将不起作用:

$dc1 = $xml->channel->item[$i]->children($namespaces["dc"]);
$pubDate1 = explode(' ',$dc1->date);
// remove -0500 
array_pop($pubDate1);
$pubDate1 = implode(' ',$pubDate1);
$pubDate = date('Y-m-d H:i:s', strtotime($pubDate1));

无需将“-”替换为“/”。您可以直接传递 $pubDate1

$dc1 = $xml->channel->item[$i]->children($namespaces["dc"]);
$pubDate1 = $dc1->date; // 'Fri, 10 Jun 2016 14:30:38 -0500'
$pubDate = date('Y-m-d H:i:s', strtotime($pubDate1));

输出:

2016-06-1112:30:38