Javascript Intl DatetimeFormatter作为(ISO8601 |自定义)输出模式

Javascript Intl DatetimeFormatter作为(ISO8601 |自定义)输出模式,javascript,icu,intl,ecmascript-intl,Javascript,Icu,Intl,Ecmascript Intl,我想使用,但与输出自定义模式。 我将此方法用于php版本的ICU dateformat,效果很好 $fmt = datefmt_create( 'fa_IR@calendar=persian', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, 'EEEE d MMMM yyyy HH:mm' // as

我想使用,但与输出自定义模式。 我将此方法用于php版本的ICU dateformat,效果很好

$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";
// پنجشنبه ۱۰ اردیبهشت ۱۳۹۴ ۱۲:۱۲
如何在Intl.DateTimeFormat中将模式设置为ICU文档,如ICU日期时间格式化程序的php版本

我的javascript代码

console.log(new Intl.DateTimeFormat('fa-IR-u-ca-persian').format(new Date()));
如何在我的javascript格式模式中设置ISO_8601模式,如
eee d MMMM yyy HH:mm
mm yy dd

你不能

Intl
实现的想法是根据您提供的语言环境条款,为您的任何请求提供“正确”的格式,可能受Unicode扩展子标签的约束,类似于配置某些行为细微差别
Intl
不提供任何指定和使用特定格式模式的方法。ISO-8601格式不能保证是任何特定语言环境的适当格式,因此您不能使用
Intl
生成它

如果您想根据特定的模式格式化日期,并在所需的数值中开槽,那么您必须通过调用
date.prototype.getMonth
和类似的函数来实现它,以获取数字,然后将它们开槽到提供的模式中