Jer*_*ink 5 zend-framework zend-date
我有一个非常奇怪的问题,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');
Run Code Online (Sandbox Code Playgroud)
输出:2011-01-02 2010-01-02
谁能告诉我我做错了什么?
zwi*_*pie 13
从ZF问题跟踪器看来,这是一个已知问题:
最近很多ZF用户正在提交Zend_Date在2009年而不是2008年返回错误年份的错误.但这是预期的行为,而不是一个错误!
来自FAQ:
在您的代码中使用自己的格式时,您可能会遇到例如2009年12月29日的情况,但您希望得到29.12.2008.
有一年的差异:2009年而不是2008年.您应该使用较低的年度常数.看这个例子:
$日期 - >的toString( 'DD.MM.YYYY');
代替
$日期 - >的toString( 'DD.MM.YYYY');
从手册
请注意,默认的ISO格式与PHP的格式不同,如果您之前没有使用过,可能会令人恼火.特别是年份和分钟的格式说明符通常不以预期的方式使用.
对于一年,有两个可用的说明符经常是错误的.ISO年份的Y说明符和实际年份的y说明符.差异很小但很重要.Y计算ISO年份,通常用于日历格式.例如,参见2007年12月31日.实际年份是2007年,但它是2008年第1周第一周的第一天.所以,如果你使用'dd.MM.yyyy',你会得到'31.2007年12月'但如果你使用'dd.MM.YYYY',你将获得'31.2008年12月'.如您所见,这不是错误,而是预期的行为,具体取决于使用的说明符.
一分钟差异不是那么大.与使用i的PHP不同,ISO使用分钟的m.因此,如果您的格式没有分钟,请检查您是否使用了正确的说明符.
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |