gpt4 book ai didi

PHP时间戳到DateTime

转载 作者:IT老高 更新时间:2023-10-28 11:59:48 25 4
gpt4 key购买 nike

您知道如何将其转换为 strtotime 或类似类型的值以传递给 DateTime 对象吗?

我的日期:

Mon, 12 Dec 2011 21:17:52 +0000

我尝试过的:

$time = substr($item->pubDate, -14);
$date = substr($item->pubDate, 0, strlen($time));

$dtm = new DateTime(strtotime($time));
$dtm->setTimezone(new DateTimeZone(ADMIN_TIMEZONE));
$date = $dtm->format('D, M dS');
$time = $dtm->format('g:i a');

以上说法不正确。如果我遍历很多不同的日期,它都是相同的日期。

最佳答案

您不需要将字符串转换为时间戳来创建 DateTime 对象(事实上,它的构造函数甚至不允许您这样做,正如您所知道的) .您可以简单地将日期字符串按原样输入 DateTime 构造函数:

// Assuming $item->pubDate is "Mon, 12 Dec 2011 21:17:52 +0000"
$dt = new DateTime($item->pubDate);

话虽如此,如果您确实希望使用时间戳而不是字符串,则可以使用 DateTime::setTimestamp() :

$timestamp = strtotime('Mon, 12 Dec 2011 21:17:52 +0000');
$dt = new DateTime();
$dt->setTimestamp($timestamp);

编辑(2014-05-07):

当时我实际上并没有意识到这一点,但是 DateTime 构造函数确实 支持直接从时间戳创建实例。根据this documentation ,您需要做的就是在时间戳前面加上一个 @ 字符:

$timestamp = strtotime('Mon, 12 Dec 2011 21:17:52 +0000');
$dt = new DateTime('@' . $timestamp);

关于PHP时间戳到DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com