我想使用Zend_Date
获取特定日期的周数我的本地在Opera浏览器中设置为英语(IN)[en_IN]
我正在使用以下代码
$date = new Zend_Date('22 Mar, 2010', null, Zend_Registry::get('Zend_Locale'));
echo $date->get(Zend_Date::WEEK); //output 12, correct
但如果我们给一个星期天,它将无法正常工作
例如
$date = new Zend_Date('21 Mar, 2010', null, Zend_Registry::get('Zend_Locale'));
echo $date->get(Zend_Date::WEEK); //output 11, not correct
它应输出12
这有什么问题?
答案 0 :(得分:1)
对于英语(印度)语言环境'en_IN',一周的第一天是星期一。 Zend_Date
正在为您提供正确的价值。
编辑:我刚刚使用'en_US'语言环境进行了快速测试,我得到了同样的行为。看起来Zend_Date
可能忽略了此计算的区域设置。
$locale = new Zend_Locale('en_US');
Zend_Registry::set('Zend_Locale', $locale);
$date = new Zend_Date('2010-03-22', null, Zend_Registry::get('Zend_Locale'));
echo $date->get(Zend_Date::WEEK); //outputs 12, correct
$date = new Zend_Date('2010-03-21', null, Zend_Registry::get('Zend_Locale'));
echo $date->get(Zend_Date::WEEK); //outputs 11, not correct
答案 1 :(得分:0)
这应该可以正常工作:
$locale = new Zend_Locale('en_IN');
Zend_Registry::set('Zend_Locale', $locale);
$date = new Zend_Date('22 Mar, 2010', null, Zend_Registry::get('Zend_Locale'));
echo $date->get(Zend_Date::WEEK);
如果没有,请尝试使用Zend_Locale_Data
直接确定。有时,Unicode提供的数据并不完全符合我们对本地区的预期。