PHP Conference Nagoya 2025

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 IntlDateFormatter::parse(string $string, int &$offset = null): int|float|false

过程化风格

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 formatter resource

string

string to convert to a time

offset

Position at which to start the parsing in string (zero-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.

示例

示例 #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
6 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