3

Intl.DateTimeFormatを使用したいのですが、出力用のカスタム パターンを使用します。ICU dateformat の php バージョンでこのメソッドを使用していますが、うまく機能します。

$fmt = datefmt_create(
    'fa_IR@calendar=persian',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'Asia/Tehran',
    IntlDateFormatter::TRADITIONAL,
    'EEEE d MMMM yyyy HH:mm' // as ISO_8601
);

echo datefmt_format($fmt, time()) . "\n";
// پنجشنبه ۱۰ اردیبهشت ۱۳۹۴ ۱۲:۱۲

ICU 日時フォーマッタの PHP バージョンのように、Intl.DateTimeFormat で ICU ドキュメントとしてパターンを設定するにはどうすればよいですか。

私のJavaScriptコード

console.log(new Intl.DateTimeFormat('fa-IR-u-ca-persian').format(new Date()));

EEEE d MMMM yyyy HH:mmor MM yy ddor etcのような私の javascript フォーマットパターンで ISO_8601 パターンをどのように設定できますか?

ISO_8601

PHP IntlDateFormatter::フォーマット

ICU 日付フォーマッター

ICU 日付形式

4

1 に答える 1

2

できません。

によって実装されたアイデアIntlは、提供するロケールの条件に従って、要求したものに「正しい」形式を提供し、おそらく Unicode 拡張サブタグの対象となり、特定の動作のニュアンスを構成することです。 Intl特定のフォーマット パターンを指定して使用する方法はありません。ISO-8601 形式は、特定のロケールに適した形式であることが保証されているものではないためIntl、作成に使用することはできません。

目的の数値をスロットに入れる特定のパターンに従って日付をフォーマットする場合は、Date.prototype.getMonthおよび同様の関数を呼び出して数値を取得し、それらを提供されたパターンにスロットすることによって自分で実装する必要があります。

于 2016-10-26T21:56:39.387 に答える