gpt4 book ai didi

zend-framework - Zend_Date 中的错误(回到过去)

转载 作者:行者123 更新时间:2023-12-04 04:31:45 25 4
gpt4 key购买 nike

我有一个很奇怪的问题, Zend_Date 正在将我的时间戳转换为一年前。

在我的行动中:

// Timestamp
$intTime = 1293922800;

// Zend_Date object
$objZendDate = new Zend_Date($intTime);

// Get date

echo date('Y-m-d',$intTime).'<br>';
echo $objZendDate->get('YYYY-MM-dd');

这输出:
2011-01-02
2010-01-02

谁能告诉我我做错了什么?

最佳答案

从 ZF 问题跟踪器看来,这是一个已知问题:

最近,很多 ZF 用户提交了一个错误,即 Zend_Date 返回错误的年份,2009 年而不是 2008 年。然而,这是预期的行为,而不是错误!

从常见问题解答:

在您的代码中使用自己的格式时,您可能会遇到这样的情况:例如 29.12.2009,但您希望得到 29.12.2008。

有一年的差异:2009 年而不是 2008 年。您应该使用小写的年份常数。看这个例子:

$date->toString('dd.MM.yyyy');

代替

$date->toString('dd.MM.YYYY');

从手册

请注意,默认的 ISO 格式与 PHP 的格式不同,如果您以前没有使用过,可能会很烦人。尤其是 Year 和 Minute 的格式说明符通常没有按预期方式使用。

对于年份,有两个说明符可用,但经常被误认为。 ISO 年份的 Y 说明符和实际年份的 y 说明符。差异很小但很重要。 Y 计算 ISO 年份,通常用于日历格式。例如,参见 2007 年 12 月 31 日。实际年份是 2007 年,但它是 2008 年第 1 周的第一周的第一天。因此,如果您使用的是“dd.MM.yyyy”,您将得到'31.December.2007' 但如果你使用 'dd.MM.YYYY' 你会得到 '31.December.2008'。如您所见,这不是错误,而是取决于使用的说明符的预期行为。

就分钟而言,差异并不是那么大。 ISO 使用说明符 m 表示分钟,不像 PHP 使用 i。因此,如果您的格式没有一分钟,请检查您是否使用了正确的说明符。

关于zend-framework - Zend_Date 中的错误(回到过去),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3413442/

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