php developer & web designer
5 mar 2010
Używam przeglÄ…darki Google Chrome głównie do przeglÄ…dania sieci – bo jest szybka. Bardzo szybka.
W procesie tworzenia witryn (caÅ‚a otoczka zwana developerkÄ…) używam nadal Firefoxa, gdyż ma co najmniej dwa niezastÄ…pione rozszerzenia – Firebug i Web developer.
Mając do dyspozycji te dwie przeglądarki, jestem w stanie zalogować się do tworzonej aplikacji na dwa różne konta (bo jak wiemy każda przeglądarka to osobna sesja).
W aplikacji do porównania dat używam Zend_Date(). Kod wygląda mniej więcej tak (chodzi o sprawdzenie czy data zdarzenia jest starsza niż 7 dni):
$d1 = new Zend_Date($this->transactionData->datetimeAccepted);
$d2 = new Zend_Date(); // zwraca aktualnÄ… datÄ™ i czas
$d2->addDay(-7); // przesuwam znacznik czasu o 7 dni wstecz
if ($d1->compare($d2) === -1) { // porównuje czy data z bazy ($d1) jest wieksza od ($d2)
// ... dalszy kod
}
W Firefox pieknie działało (Zend_Date::compare() zwracał -1, co oznacza że data $d1 jest starsza od $d2). Odpaliłem widok w Chrome i jakież było moje zdziwienie, gdy wynik testu Zend_Date::compare() wynosił 1 (data $d1 jest młodsza niż $d2).
Po szybkim zbadaniu kodu okazaÅ‚o siÄ™, że w Chrome $d2 ma postać “amerykaÅ„skÄ…”. SprawdziÅ‚em w Zend_Locale() i okazÅ‚o siÄ™, że polskojÄ™zyczna wersja Chrome (v. 5.0.342.1) identyfikuje siÄ™ nagłówkiem:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2
Szybka zdecydowaÅ‚em siÄ™ na “narzucenie” aplikacji odpowiednich ustawieÅ„ lokalnych.
W Bootstrapie dodałem kod:
protected function _initLocale()
{
$locale = new Zend_Locale('pl');
Zend_Registry::set('Zend_Locale', $locale);
}
Oczywiście to w wielkim uproszczeniu, bo aplikacją którą tworzę będzie wielojęzykowa więc i ustawienia lokalizacji będą się dynamicznie zmieniać
Najnowsze komentarze