Javascript Intl DatetimeFormatter как (ISO_8601|custom) шаблон вывода

Я хочу использовать Intl.DateTimeFormat, но с пользовательским шаблоном для вывода. Я использую этот метод для 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";
// پنجشنبه ۱۰ اردیبهشت ۱۳۹۴ ۱۲:۱۲

Как я могу установить шаблон в качестве документации ICU в Intl.DateTimeFormat, как PHP-версия форматера времени и времени ICU.

Мой код JavaScript

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

Как можно iset ISO_8601 шаблон в моем шаблоне формата javascript, как EEEE d MMMM yyyy HH:mm или же MM yy dd или что?

ISO_8601

PHP IntlDateFormatter:: format

ICU Форматер даты

Форматы даты ICU

2 ответа

Решение

Ты не можешь

Идея реализована Intl заключается в том, чтобы дать вам "правильный" формат для всего, что вы запрашиваете, в соответствии с условиями предоставляемой локали, возможно, в зависимости от вложенных тегов расширения Unicode и аналогичных для настройки определенных поведенческих нюансов. Intl не предоставляет никакого способа для указания и использования определенных шаблонов форматирования. Формат ISO-8601 не является подходящим форматом для любой конкретной локали, поэтому его нельзя использовать Intl производить это.

Если вы хотите отформатировать дату в соответствии с определенным временным интервалом шаблона в требуемых числовых значениях, вам придется реализовать это самостоятельно, вызвав Date.prototype.getMonth и аналогичные функции для получения чисел, а затем вставьте их в заданный шаблон.

вы можете отформатировать текст следующим образом:direction: rtlHTML-тега

      const date = new Date();

const weekday = new Intl.DateTimeFormat('fa-IR', {weekday: 'long'}).format(date.getDay());
const today = new Intl.DateTimeFormat('fa-IR', {dateStyle: 'long'}).format(date);
const fullDate = `  امروز: ${weekday} ${today}  
Другие вопросы по тегам