在php中转换日期,toString函数不工作


zend framework - Convert a date in php, toString function isn't working

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

下面是我的代码:
    $date_start = new Zend_Date(strtotime($this->startdate));
    echo($date_start); 

结果是:31 Dec 2012 00:00:00

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

结果是:31 December 2013

我应该怎样做才能获得2012年12月31日?

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

请注意,默认的ISO格式与PHP的格式不同,如果您以前没有使用过,可能会感到恼火。特别是Year和Minute的格式说明符经常没有按预期的方式使用。

对于year,有两个可用的说明符,这两个说明符经常出错。ISO年份的Y说明符和实际年份Y说明符。差异虽小,但意义重大。Y计算ISO年份,通常用于日历格式。参见示例31。2007年12月。实际年份是2007,但是是2008年第1周第一周的第一天。所以,如果你用的是'dd.MM。你会得到12月31日。但如果你用"dd.MM. 2007"。YYYY'你会得到'31 december .2008'。正如你所看到的,这不是bug,而是一种预期的行为,取决于所使用的说明符。

使用";yyy";而不是"YYY"。

使用yyy代替yyy。

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

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