如何格式化原子日期时间

Yan*_*lan 6 php datetime parsing atom-feed

我以这种格式从Feed获取日期:

2009-11-04T19:55:41Z
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用date()PHP中的函数对其进行格式化,但是我收到一条错误消息:

date()期望参数2很长,在/bla/bla.php中给出的对象

我尝试使用preg_replace()删除TZ,但仍然无法让它工作.

Jos*_*zel 13

strtotime 是一个很棒的函数,用于将日期格式转换为Unix时间戳.

这会给你你想要的东西:

date('my format here', strtotime('2009-11-04T19:55:41Z'));
Run Code Online (Sandbox Code Playgroud)


Pau*_*een 10

关于什么

\DateTime::createFromFormat(\DateTime::ATOM, $AtomDate); // converting Atom date to object
Run Code Online (Sandbox Code Playgroud)

要么

date(\DateTime::ATOM, $timestamp); // formatting timestamp to Atom time
Run Code Online (Sandbox Code Playgroud)

或两者

$dto = \DateTime::createFromFormat(\DateTime::ATOM, $AtomDate);
date('d-M-Y H:i:s', $dto->getTimestamp()); // formatting Atom date to anything you want
Run Code Online (Sandbox Code Playgroud)

甚至更好

$dto = \DateTime::createFromFormat(\DateTime::ATOM, $AtomDate);
$formattedDate = $dto->format('d-M-Y H:i:s');
Run Code Online (Sandbox Code Playgroud)

  • 不知道这个原子常数,有用! (2认同)