Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php解析法语日期_Php_Date - Fatal编程技术网

用php解析法语日期

用php解析法语日期,php,date,Php,Date,我有字符串: “Lundi,08 Juillet 2013 09:09” 如何解析此类型字符串 我尝试: $date = '08 Juillet 2013 09:09'; $date = new \DateTime($date); 但它会抛出异常,您可以使用。如果只有一种语言,并且在不支持法语的情况下使用共享主机,则可以用月份构建一个数组,并用英语版本替换它们。试试这段代码,首先使用setlocale $date = '08 Juillet 2013 09:09'; set

我有字符串:

“Lundi,08 Juillet 2013 09:09”

如何解析此类型字符串

我尝试:

    $date = '08 Juillet 2013 09:09';
    $date = new \DateTime($date);

但它会抛出异常,您可以使用。如果只有一种语言,并且在不支持法语的情况下使用共享主机,则可以用月份构建一个数组,并用英语版本替换它们。

试试这段代码,首先使用
setlocale

 $date = '08 Juillet 2013 09:09';
 setlocale(LC_TIME, 'fr-FR');
 $time = strptime($date, "%d %B %G %H:%M");
 print_r($time);

如果格式固定,请与法语结合使用:

有关
格式
字符串的说明,请参阅

此扩展可用于:

// 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

DateTime
standard中,仅支持此列表


如果您无法将Juillet更改为Juillet,则必须使用Juillet 2013年7月09:09而不是Juillet 2013年9:09,或者使用Juillet,如果您无法将Juillet更改为Juillet,则必须使用Juillet 2013年7月09:09,或者使用strtotime,但这绝对是最好的解决方案+1这应该是答案。很好!但是您忘记了$find数组中的“octobre:)
// 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
$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));
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