从“星期五,2016年6月10日14:30:38 -0500”转换为DATETIME

时间:2016-06-10 20:38:30

标签: php mysql xml rss

我正在尝试从页面中提取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吗?

2 个答案:

答案 0 :(得分:0)

如果您的所有日期都有最后一部分,则此代码可能有效。但是如果最后一部分(-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));

答案 1 :(得分:0)

无需用'/'替换' - '。您可以直接传递$ 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));

OutPut:

2016-06-11 12:30:38