API Platform Conference 2026 - Lille (France) & Online

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parseParse string to a timestamp value

说明

面向对象风格

public function IntlDateFormatter::parse(string $string, int &$offset = null): int|float|false

过程化风格

function datefmt_parse(IntlDateFormatter $formatter, string $string, int &$offset = null): int|float|false

Converts string to an incremental time value, starting at offset and consuming as much of the input value as possible.

参数

formatter

The IntlDateFormatter object.

string

string to convert to a time

offset

Position at which to start the parsing in string (zero-based). On return, offset holds the position at which parsing ended, whether or not the parse succeeded. If offset is negative or greater than strlen($string), the parse fails immediately and offset is left unchanged.

返回值

Timestamp of parsed value, or false if value cannot be parsed.

示例

示例 #1 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    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_Angeles',
    IntlDateFormatter::GREGORIAN
);
?>

示例 #2 datefmt_parse() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    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_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second parsed output is ' . datefmt_parse($fmt, 'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?>

以上示例会输出:

First parsed output is 630201600
Second parsed output is 630201600

参见

添加备注

用户贡献的备注 1 note

up
0
Anonymous
8 years ago
Please note:
* on  a 32-bit system, parse() will return float if the value gets out of integer range
* while parse() parses fractional seconds with a format like '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.
To Top