Преобразование времени с использованием языка Zend - PullRequest
0 голосов
/ 15 июля 2011

Есть ли способ преобразования времени, скажем, с 17:00 до 17:00 с использованием Zend Locale?

Я попробовал метод в документах как есть (который содержит опечатку), но он не работает. Выдает ошибку «Невозможно разобрать дату» 13: 44: 42, используя «dd.MM.yyyy» (M <> y) «

$locale = new Zend_Locale('de_AT');
if (Zend_Locale_Format::getTime('13:44:42',
                            array('date_format' =>
                                      Zend_Locale_Format::STANDARD,
                                  'locale' => $locale))) {
    print "time";
} else {
    print "not a time";
}

Затем я попробовал двухэтапный метод, сначала получая формат времени текущей локали, а затем используя его в функции getTime.

$locale = new Zend_Locale('en_US');
$tf = Zend_Locale_Format::getTimeFormat($locale);
$test = Zend_Locale_Format::getTime('17:00', array('date_format' => $tf, 'locale' => $locale));

Это возвращает результат, но просто возвращает мне то, что у меня было

array('date_format'=>'h:mm:ss a', 'locale'=>'en_US', 'hour'=>'17', 'minute'=>'00')

Есть ли что-то, что преобразует время в фактическую локаль, к которой я пытаюсь его проанализировать?

1 Ответ

0 голосов
/ 15 июля 2011

Вам нужно использовать Zend_Date с языком, чтобы получить дату в нужном формате.

$date    = new Zend_Date(); // Default ISO format type & en_US
// Set the time and pass the format I am using to set the time
$date->setTime('17:00:00', 'HH:mm:ss'); 
echo $date; // Jul 15, 2011 5:00:00 PM

EDIT

Подробнее о том, как вы можете использовать Zend_Locale с Zend_Date

$locale = new Zend_Locale('de_AT');
echo  $date->toString(Zend_Locale_Format::getTimeFormat($locale)) ; // 17:00:00
$locale = new Zend_Locale('en_US');
echo  $date->toString(Zend_Locale_Format::getTimeFormat($locale)) ; // 5:00:00 PM
...