我正在进行一个项目,以确定feedburner提要中列出的url/post的年龄。我可以解析并获得如下格式的pubDate值:Sat, 13 Jul 2013 10:00:15 +0000
我想创建一个PHP脚本,从当前日期减去原始日期时间。我已经创建了strtotime($item->pubDate)
,但我对时区感到困惑。脚本必须适用于每个提要(可能在不同的时区),并且脚本必须在每个时区都能正常工作。
那么,我如何根据这些规范来确定职位的年龄呢?
您可以为此使用DateTime类,特别是静态方法`DateTime::createFromFormat()',类似于以下内容:-
$dateStr = 'Sat, 13 Jul 2013 10:00:15 +0000';
$dateTime = DateTime::createFromFormat('D, d M Y H:i:s O', $dateStr);
$dateTime->setTimezone(new DateTimeZone('UTC'));
var_dump($dateTime);
$diff = $dateTime->diff(new DateTime('now', new DateTimeZone('UTC')));
var_dump($diff);
输出:-
object(DateTime)[1]
public 'date' => string '2013-07-13 10:00:15' (length=19)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
object(DateInterval)[3]
public 'y' => int 0
public 'm' => int 0
public 'd' => int 0
public 'h' => int 22
public 'i' => int 47
public 's' => int 48
public 'invert' => int 0
public 'days' => int 0
正如您所看到的,每个dateTime对象的时区都设置为UTC。$diff
是DateInterval的一个实例,它表示"现在"和您收到的日期之间的差异。
您可以使用"DateInterval::format()"以任何格式输出日期之间的差异