在PHP中转换时间戳

use*_*124 2 php timestamp

我正在与我的服务器执行HTTP GET的外部供应商合作以提交交付报告.一切正常,但我无法将时间戳转换为本地格式.时间戳的提交方式如下:

Mon, 15 Aug 2005 15:51:01 +0000
Run Code Online (Sandbox Code Playgroud)

然后我需要在我当地的时区转换为不同的格式.这是我目前的代码:

date_default_timezone_set('UTC');
$ts = $_GET['skebby_date_time'];
$date = DateTime::createFromFormat('D, d M y H:i:s O', $ts);
$date->setTimeZone(new DateTimeZone("Australia/Sydney"));
$fmTimestamp = $date->format('m/d/Y h:i:s A');
Run Code Online (Sandbox Code Playgroud)

这当前正在生成致命错误:在此行的非对象上调用成员函数setTimeZone():

$date->setTimeZone(new DateTimeZone("Australia/Sydney"));
Run Code Online (Sandbox Code Playgroud)

我已经在其他时间戳上使用了类似的代码,所以不知道我在这一点上做错了什么.

Kev*_*vin 6

->setTimeZone()方法失败,因为$date它不是有效的DateTime对象.

DateTime由于您设置的格式,它无法成为有效对象.

在您给出的当前格式中,其小y对应于两位数表示:

Mon, 15 Aug 2005 15:51:01 +0000
D,   d  M   y    H:i:s    O
Run Code Online (Sandbox Code Playgroud)

但是你给出了2005哪个对应大Y(4位),所以它应该是:

D, d M Y H:i:s O
Run Code Online (Sandbox Code Playgroud)

退房