我想使用Intl.DateTimeFormat但是使用自定义模式进行输出。 我将此方法用于ICU日期格式的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";
// پنجشنبه ۱۰ اردیبهشت ۱۳۹۴ ۱۲:۱۲
如何在Intl.DateTimeFormat中将模式设置为ICU文档,如ICU日期时间格式器的php版本。
我的javascript代码
console.log(new Intl.DateTimeFormat('fa-IR-u-ca-persian').format(new Date()));
我的javascript格式模式如EEEE d MMMM yyyy HH:mm
或MM yy dd
等等,如何将ISO_8601模式化?
答案 0 :(得分:2)
你不能。
Intl
实施的理念是为您提供"权利"根据您提供的语言环境条款,您所请求的任何格式,可能受Unicode扩展子标签的约束,类似于配置某些行为细微差别。 Intl
没有提供任何指定和使用特定格式模式的方法。 ISO-8601格式不能保证适用于任何特定区域设置,因此您无法使用Intl
来生成它。
如果您想根据所需数值中的特定模式插槽格式化日期,您必须通过调用Date.prototype.getMonth
和类似函数来获取数字,然后将它们插入到提供的模式。