Проблема в получении числа недели по воскресеньям, в Zend - PullRequest
0 голосов
/ 24 марта 2010

Я хочу получить номер недели определенной даты, используя Zend_Date

Мой локальный установлен как английский (IN) [en_IN], в браузере Opera

Я использую следующий код

$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

Что с этим не так?

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Для английского языка (Индия), 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
0 голосов
/ 24 марта 2010

Это должно работать нормально:

$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, не совсем соответствуют нашим регионам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...