У меня строка:
"Lundi, 08 Juillet 2013 09:09"
Как я могу разобрать эту строку типа?
Я попробую:
$date = '08 Juillet 2013 09:09'; $date = new \DateTime($date);
Но это исключение
$date = '08 Juillet 2013 09:09';; $find = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'); $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $date = str_replace($find, $replace, strtolower($date)); date = date('Y/m/d', strtotime($date));
Для этого можно использовать расширение intl
:
// create formatter $fmt = new IntlDateFormatter( "fr-FR", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Etc/UTC', IntlDateFormatter::GREGORIAN, 'EEEE, dd MMMM y hh:mm' ); // parse $ts = $fmt->parse('Lundi, 08 Juillet 2013 09:09'); echo $ts; // 1373274540
Если ваш формат исправлен, используйте strptime
в сочетании с французским языком:
date_default_timezone_set("UTC"); setlocale(LC_ALL, 'fr_FR'); $date = '08 Juillet 2013 09:09'; $date = strptime($date, '%d %B %Y %H:%M'); var_dump($date);
См. Strftime для описания строки format
.
Вы можете использовать strftime . Если есть только один язык, и вы используете общий хостинг, где французский не поддерживается, вы можете построить массив с месяцами и заменить его на английскую версию.
попробуйте этот код, важно сначала использовать setlocale
$date = '08 Juillet 2013 09:09'; setlocale(LC_TIME, 'fr-FR'); $time = strptime($date, "%d %B %G %H:%M"); print_r($time);
в стандарте DateTime
поддерживает этот список только
http://www.php.net/manual/en/class.datetime.php
DateTime::ATOM DATE_ATOM Atom (example: 2005-08-15T15:52:01+00:00) DateTime::COOKIE DATE_COOKIE HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC) DateTime::ISO8601 DATE_ISO8601 ISO-8601 (example: 2005-08-15T15:52:01+0000) DateTime::RFC822 DATE_RFC822 RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000) DateTime::RFC850 DATE_RFC850 RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC) DateTime::RFC1036 DATE_RFC1036 RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000) DateTime::RFC1123 DATE_RFC1123 RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTime::RFC2822 DATE_RFC2822 RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000) DateTime::RFC3339 DATE_RFC3339 Same as DATE_ATOM (since PHP 5.1.3) DateTime::RSS DATE_RSS RSS (Mon, 15 Aug 2005 15:52:01 +0000) DateTime::W3C DATE_W3C
это должно быть 08 July 2013 09:09
вместо 08 Juillet 2013 09:09
или использовать strtotime
вместо этого, если вы не можете изменить Juillet
до July