I have string:
\"Lundi, 08 Juillet 2013 09:09\"
How can I parse this type string?
I try:
$date = \'08 Juillet 2013 09:0
The intl extension can be used for this:
// 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
try this code, its important to first use setlocale
$date = '08 Juillet 2013 09:09';
setlocale(LC_TIME, 'fr-FR');
$time = strptime($date, "%d %B %G %H:%M");
print_r($time);
in DateTime
standard only support this list
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
it must be 08 July 2013 09:09
instead of 08 Juillet 2013 09:09
or use strtotime
instead if you can't change Juillet
to July
You could use strftime. If there's only one language and you use shared hosting where french isn't supported, you could build an array with the months, and replace them with the english version.
If your format is fixed, use strptime in combination with French locale:
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);
See strftime for description of format
string.
$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));