用PHP格式化日期


Formatting date in PHP

格式化以下日期无效。回波日期发布后的日期发布格式为:2012年9月15日星期六10:10:37-0400

第二个回声,没有回声。

$date_published = $abc[$z]['pubDate'];
echo $date_published;
$date_published = date('Y-m-d H:i:s',$date_published);
echo $date_published;

使用strtotime()

$date_published = date('Y-m-d H:i:s',strtotime($date_published));

date()期望unix时间戳作为第二个参数。

使用strtotime():

$date_published = $abc[$z]['pubDate'];
echo $date_published;
$date_published = date('Y-m-d H:i:s', strtotime($date_published));
echo $date_published;

此脚本:

$date_published = 'Sat, 15 Sep 2012 10:10:37 -0400';
printf("date_published=%s'n", $date_published);
$time = strtotime($date_published);
printf("time=%s'n", $time);
$date = date('Y-m-d H:i:s',$time);
printf("date=%s'n", $date);
# if you are using PHP 5.2 or greater:
$dt = new DateTime($date_published);
$date = $dt->format('Y-m-d H:i:s');
printf("date=%s'n", $date);

产生以下输出:

date_published=Sat, 15 Sep 2012 10:10:37 -0400
time=1347718237
date=2012-09-15 07:10:37
date=2012-09-15 10:10:37

请注意,date()显示的是我所在本地时区的时间(PDT或-07:00),但DateTime()显示的是原始时区中的时间(-04:00)。

要使用php格式化日期,需要使用日期函数,该函数接受日期格式和时间戳作为参数。

在上面的示例中,您需要使用strtotime()为$date_published生成时间戳,并将其作为date函数中的第二个参数传递。

例如$date_published=日期('Y-m-d H:i:s',strtotime($date_publiced));