Отображать дату на английском и японском языках, используя moment.js или JQuery/Javascript.

Я использую moment.js для форматирования дат. Я хочу отображать дату в культуре 'en-JP', но moment.js не поддерживает язык 'en-JP'.

Код Jquery/Javascript тоже подойдет.

Я хочу отображать дату как:

2018, 15 августа, среда

2 ответа

Решение

Кажется, "年", "月", "日" - это японские слова "год", "месяц", "день", поэтому не меняйте их вместе с датой. Так что вам не нужна библиотека, если есть разумная поддержка объекта Intl через toLocaleString, например

var d = new Date();
var lang = 'en',
    year = d.toLocaleString(lang, {year:'numeric'}),
    month = d.toLocaleString(lang, {month:'short'}),
    day = d.toLocaleString(lang, {day:'numeric'}),
    dayName = d.toLocaleString(lang, {weekday:'long'});

console.log(
  `${year}年 ${month}月 ${day}日 ${dayName}`
);

Нет такого формата (2018, 15 августа, среда), который вы задаете в японской культуре.

Но если вам действительно нужен только этот формат, вы можете получить его, как показано ниже, используя momentjs:

//2018年 Aug月 15日 Wednesday
var moment = moment();

console.log(moment.year() + "年 " + moment.format("MMM") + "月 " + moment.date() + "日 " + moment.format("dddd"));

console.log(moment.format('YYYY年 MMM月 D日 dddd'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

Другие вопросы по тегам