请注意
* 在32位系统上,如果值超出整数范围,parse()将返回浮点数。
* 虽然parse()使用类似'yyyy-MM-dd HH:mm:ss.SSSSSS'的格式解析分数秒,但它只返回一个整数。当值作为浮点数返回时,这也是正确的,返回值中仍然缺少毫秒。
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::parse -- datefmt_parse — 将字符串解析为时间戳值
面向对象风格
过程化风格
将string
转换为增量时间值,从offset
开始,尽可能多地使用输入值。
formatter
格式化程序资源
string
要转换为时间的字符串
offset
在string
中开始解析的位置(从零开始)。如果在string
被消耗之前没有发生错误,offset
将包含-1,否则它将包含解析结束(并发生错误)的位置。如果解析失败,此变量将包含结束位置。如果offset
> strlen($string)
,则解析立即失败。
已解析值的timestamp,如果无法解析值则为false
。
示例 #1 面向对象示例
<?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() 示例
<?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