是否有使用Zend Locale转换时间的方法,例如17:00到5:00pm ?
我已经在文档中尝试了这个方法,因为它是(它有一个错别字),但它不起作用。它给出错误'无法解析日期'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')
是否有一些东西将时间转换为我试图解析的实际区域设置?
您需要使用带有区域设置的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
编辑
关于如何将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