1

我正在尝试使用 toString('dd MMMM YYY') 函数将日期转换为字符串。但在这里,这是行不通的。

这是我的代码:

    $date_start = new Zend_Date(strtotime($this->startdate));
    echo($date_start); 

结果是:2012 年 12 月 31 日 00:00:00

    $date_input = $date_start->toString('dd MMMM YYY');
    echo($date_input);

结果是:2013 年 12 月 31 日

我需要做什么才能获得 2012 年 12 月 31 日?

4

2 回答 2

5

这是此处描述的已知问题:http: //framework.zend.com/issues/browse/ZF-5297

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

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

使用“ yyy”代替“ YYY”。

于 2013-01-04T22:28:39.053 回答
3

使用 yyy 而不是 YYY。

YYY 是 ISO-8601 日期,不同于日历日期。

http://framework.zend.com/manual/1.12/en/zend.date.constants.html

于 2013-01-04T22:25:43.387 回答