PHP 8.4.1 Released!

IntlDatePatternGenerator::getBestPattern

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::getBestPatternもっとも適合した 日付/時刻 のフォーマットを決定する

説明

public IntlDatePatternGenerator::getBestPattern(string $skeleton): string|false

特定のロケールにもっとも合致した 日付/時刻のフォーマットがどれかを決定します。

パラメータ

skeleton

スケルトンを指定します。

戻り値

成功時に DateTimeInterface::format() が受け入れるフォーマットを返します。 失敗した場合に false を返します

例1 IntlDatePatternGenerator::getBestPattern() の例

<?php

$skeleton
= 'YYYYMMdd';
$today = \DateTimeImmutable::createFromFormat('Y-m-d', '2021-04-24');

$patternGenerator = new \IntlDatePatternGenerator('de_DE');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo
'de: ', \IntlDateFormatter::formatObject($today, $pattern, 'de_DE'), "\n";

$patternGenerator = new \IntlDatePatternGenerator('en_US');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo
'en: ', \IntlDateFormatter::formatObject($today, $pattern, 'en_US');
?>

上の例の出力は以下となります。

de: 24.04.2021
en: 04/24/2021

add a note

User Contributed Notes 1 note

up
3
ICU User
2 years ago
Use pattern letter "j" in skeleton to get a localized time string: https://unicode-org.github.io/icu/userguide/format_parse/datetime/index#datetimepatterngenerator

"j" gets mapped to one of "H", "h", "k" or "K".
To Top