Muszę przeanalizować ciąg daty w aplikacji wielojęzycznej. Każdy użytkownik ma swoje ustawienia regionalne, a następnie ich format daty.PHP: Przetwórz datę w zlokalizowanym formacie
Jak używać:
new DateTime($datestr);
lub
date_parse($datestr);
ze zlokalizowaną format daty?
Zakładając dd/mm/rrrr jak data formacie EN i dd/mm/rrrr jako dniem formacie zrobiłem tego testu:
<?php
echo "EN locale<br>\r\n";
setlocale(LC_ALL, 'en_US');
$date="01/02/2015"; //2th Jan
$date_array=date_parse($date);
$mktime=mktime($date_array['hour'], $date_array['minute'], $date_array['second'], $date_array['month'], $date_array['day'], $date_array['year']);
$datetime=new DateTime($date);
echo date("Y-m-d",$mktime);
echo "<br>\r\n";
echo $datetime->format('Y-m-d');
echo "<br>\r\n";
echo "IT locale<br>\r\n";
setlocale(LC_ALL, 'it_IT');
$date="01/02/2015"; //1th Feb
$date_array=date_parse($date);
$mktime=mktime($date_array['hour'], $date_array['minute'], $date_array['second'], $date_array['month'], $date_array['day'], $date_array['year']);
$datetime=new DateTime($date);
echo date("Y-m-d",$mktime);
echo "<br>\r\n";
echo $datetime->format('Y-m-d');
wynik jest wyjście SAME, zarówno lokalnych ustawień parse jest dostarczane w formacie mm/dd/rrrr. Wyjście było zawsze 2015-01-02 (2 lutego)
zobaczyć to podobne pytanie o to, czego potrzebujesz http://stackoverflow.com/questions/8827514/get-date-format-according- do-locale-w-php. będziesz musiał użyć 'set_locale' wraz z' getDateFormat' –
Dlaczego nie mogę znaleźć żadnych dokumentów na temat getDateFormat()? – Tobia
przepraszam @Tobia, Byłem w pośpiechu, pisząc mój komentarz, getDateFormat, jest niestandardową funkcją, która zwróci format daty w zależności od lokalizacji –