Полугодовой формат даты - PullRequest
0 голосов
/ 11 апреля 2020

Я хочу получить формат даты полугодия для ex: Если у меня есть дата 2020-01-01, формат даты должен быть H1, а для 2020-08-01 формат даты должен быть H2, я достиг формата даты квартала например: 2020-01-01 -> Q1 и 2020-04-01 -> Q2 следующим образом

const baseDateM = moment(`${year}-${month}-01`, 'YYYY-MMM-DD');
var periodAsDatesM = []; // using var
var dateFormat;
dateFormat = '[Q]Q';
periodAsDatesM = [
          baseDateM,
          baseDateM.clone().subtract(1, 'quarters'),
          baseDateM.clone().subtract(2, 'quarters'),
          baseDateM.clone().subtract(3, 'quarters'),
          baseDateM.clone().add(1, 'quarters'),
          baseDateM.clone().add(2, 'quarters'),
 ];
let yearsArray = _.uniq(periodAsDatesM.map(dtM => dtM.format('YYYY')));
const myPeriodArr = periodAsDatesM.map(dtM => dtM.format(dateFormat));

Здесь myPeriodArr содержит [Q1, Q2] на основе дат, но теперь когда, когда я следую за этим в течение полугода, myPeriodArr содержит [H0, H0] независимо от даты. Я пробовал следующее в течение полугода.

dateFormat = '[H]H';
        periodAsDatesM = [
          baseDateM,
          baseDateM.clone().subtract(6, 'months'),
          baseDateM.clone().subtract(12, 'months'),
          baseDateM.clone().subtract(18, 'months'),
          baseDateM.clone().add(6, 'months'),
          baseDateM.clone().add(12, 'months'),
        ];
let yearsArray = _.uniq(periodAsDatesM.map(dtM => dtM.format('YYYY')));
const myPeriodArr = periodAsDatesM.map(dtM => dtM.format(dateFormat));

Я хочу получить формат даты в H1 и H2 Ex: если periodAsDatesM содержит: [2018-12-01,2019-06-01,2019-12-01,2020-06-01], тогда myPeriodArr должно быть: [H2,H1,H2,H1]

1 Ответ

1 голос
/ 11 апреля 2020

Судя по тегам вашего вопроса, похоже, вы используете момент js. В данный момент существует проблема js Проект GitHub.

Адаптировано из комментария там :

const halfFormatted = `H${moment(new Date()).get('quarter') < 3 ? 1 : 2}`

console.log(halfFormatted)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
const halfFormat = `H${date.get('quarter') < 3) ? 1 : 2}`
...