Ho bisogno di analizzare una stringa di data in un'applicazione multilingue. Ogni utente ha le proprie impostazioni internazionali e quindi il loro formato data.PHP: Parse date from localized format
Come usare:
new DateTime($datestr);
o
date_parse($datestr);
con il formato della data localizzato?
Supponendo gg/mm/aaaa come EN formato della data e gg/mm/aaaa come IT formato della data che ho fatto questo test:
<?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');
Il risultato è l'uscita STESSO, con entrambe le impostazioni internazionali parse è fornito con il formato mm/gg/aaaa. L'uscita era sempre 2015/01/02 (2 febbraio)
vedono questa domanda simile a quello che avete bisogno http://stackoverflow.com/questions/8827514/get-date-format-according- to-the-locale-in-php. sarà necessario utilizzare 'set_locale' insieme a' getDateFormat' –
Perché non riesco a trovare alcun documento su getDateFormat()? – Tobia
scuse @Tobia, ero di fretta a scrivere il mio commento, getDateFormat, è una funzione personalizzata che restituirà il formato della data a seconda delle impostazioni internazionali –