2015-04-30 96 views
1

我想使用Intl.DateTimeFormat但使用自定義模式輸出。 我使用這種方法的php版本的ICU dateformat,它的工作很好。Javascript Intl DatetimeFormatter as(ISO_8601 | custom)輸出模式

$fmt = datefmt_create(
    '[email protected]=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:mmMM yy dd或者等我的javascript格式模式ISET ISO_8601模式?

ISO_8601

PHP IntlDateFormatter::format

ICU Date formatter

ICU Date formats

回答

1

你不能。

Intl實現的想法是根據您提供的語言環境的條款,爲您提供任何請求的「正確」格式,可能受Unicode擴展子標籤以及類似的配置某些行爲細微差別的影響。 Intl不提供任何方式來指定和使用特定的格式模式。 ISO-8601格式不是保證適用於任何特定語言環境的格式,因此您不能使用Intl來生成它。

如果您想根據特定模式插入所需數值來格式化日期,您必須通過調用Date.prototype.getMonth和類似函數來獲取數字,然後將它們插入提供的模式來實現它。