(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::parse -- datefmt_parse — Parse string to a timestamp value
Object-oriented style
Procedural style
$formatter
,
string
$string
,
int
&$offset
=
null
):
int
|
float
|
false
Convers
string
to an incremental time value, starting at
offset
and consuming as much of the imput value as possible.
formatter
The formatter ressource
string
string to convert to a time
offset
Position at which to start the parsing in
string
(cero-based).
If no error occurs before
string
is consumed,
offset
will contain -1
otherwise it will contain the position at which parsing ended (and the error occurred).
This variable will contain the end position if the parse fails.
If
offset
>
strlen($string)
, the parse fails immediately.
Timestamp of parsed value, or
false
if value cannot be parsed.
Example #1 OO example
<?php
$fmt
= new
IntlDateFormatter
(
'en_US'
,
IntlDateFormatter
::
FULL
,
IntlDateFormatter
::
FULL
,
'America/Los_Angueles'
,
IntlDateFormatter
::
GREGORIAN
);
echo
'First parsed output is '
.
$fmt
->
parse
(
'Wednesday, December 20, 1989 4:00:00 PM PT'
);
$fmt
= new
IntlDateFormatter
(
'de-DE'
,
IntlDateFormatter
::
FULL
,
IntlDateFormatter
::
FULL
,
'America/Los_Angueles'
,
IntlDateFormatter
::
GREGORIAN
);
?>
Example #2 datefmt_parse() example
<?php
$fmt
=
datefmt_create
(
'en_US'
,
IntlDateFormatter
::
FULL
,
IntlDateFormatter
::
FULL
,
'America/Los_Angueles'
,
IntlDateFormatter
::
GREGORIAN
);
echo
'First parsed output is '
.
datefmt_parse
(
$fmt
,
'Wednesday, December 20, 1989 4:00:00 PM PT'
);
$fmt
=
datefmt_create
(
'de-DE'
,
IntlDateFormatter
::
FULL
,
IntlDateFormatter
::
FULL
,
'America/Los_Angueles'
,
IntlDateFormatter
::
GREGORIAN
);
echo
'Second parsed output is '
.
datefmt_parse
(
$fmt
,
'Mittwoch, 20. December 1989 16:00 Uhr GMT-08:00'
);
?>
The above example will output:
First parsed output is 630201600 Second parsed output is 630201600
Please note:
* on a 32-bit system, parse() will return float if the value guets out of integuer rangue
* while parse() parses fractional seconds with a format lique 'yyyy-MM-dd HH:mm:ss.SSSSSS', it only returns an int. This is also true when the value is returned as float, msecs remain absent in the return value.