法國日期我有字符串:解析在PHP
「Lundi將軍,08 JUILLET 2013 09:09」
我如何分析這種類型的字符串?
我嘗試:
$date = '08 Juillet 2013 09:09';
$date = new \DateTime($date);
但它拋出異常
法國日期我有字符串:解析在PHP
「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));
不錯的一個!但是你忘記了$ find數組中的「octobre」:) – Manu
你可以使用strftime。如果只有一種語言,並且您在不支持法語的情況下使用共享宿主,則可以使用月份構建一個數組,並用英文版替換它們。
試試這個代碼,它先用重要setlocale
$date = '08 Juillet 2013 09:09';
setlocale(LC_TIME, 'fr-FR');
$time = strptime($date, "%d %B %G %H:%M");
print_r($time);
的intl
擴展可以被用於此:
DateTime
// 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
值得注意的是'intl'僅適用於PHP> = 5.2,但這絕對是最好的解決方案。 +1 –
這應該成爲答案。 – pinkvoid
標準只支持這個名單
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
[的strtotime不同的語言?]的可能重複(http://stackoverflow.com/questions/6988536/strtotime-with-different-languages) – Tom
這是否給出了答案你有些輕:http://stackoverflow.com/a/8051979/188331? – Raptor