PHP Conference Japan 2024

IntlDateFormatter::parse

datefmt_parse

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

IntlDateFormatter::parse -- datefmt_parse將字串解析為時間戳記值

說明

物件導向風格

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

程序式風格

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

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
'第一次解析的輸出是 ' . $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

另請參閱

新增註釋

使用者貢獻的註釋 1 則註釋

匿名
6 年前
請注意
* 在 32 位元系統上,如果值超出整數範圍,parse() 將會傳回浮點數
* 雖然 parse() 使用 'yyyy-MM-dd HH:mm:ss.SSSSSS' 之類的格式解析小數秒,但它只會傳回一個整數。當值以浮點數形式傳回時也是如此,毫秒在傳回值中仍然不存在。
To Top