7

私は文字列を持っています:

「ルンディ、2013 年 7 月 8 日 09:09」

このタイプの文字列を解析するにはどうすればよいですか?

私は試します:

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

しかし、それは例外をスローします

4

6 に答える 6

11

これには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
于 2013-07-09T07:05:35.350 に答える
1

形式が固定されている場合は、フランス語のロケール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);

stringの説明については、strftimeを参照してください。format

于 2013-07-09T07:05:32.550 に答える
0

strftimeを使用できます。言語が 1 つしかなく、フランス語がサポートされていない共有ホスティングを使用している場合は、月の配列を作成し、それらを英語版に置き換えることができます。

于 2013-07-09T06:58:47.643 に答える
0

標準では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:09strtotimeJuilletJuly

于 2013-07-09T07:08:56.427 に答える