Saya ingin mendapatkan format tanggal setengah tahun untuk contoh: Jika saya memiliki tanggal 2020-01-01 format tanggal harus H1 dan untuk 2020-08-01 format tanggal harus H2 Saya telah mencapai format tanggal kuartal untuk contoh: 01-01-2020 -> Q1 dan untuk 01-04-2020 -> Q2 dengan cara berikut

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));

Di sini myPeriodArr berisi [Q1, Q2] berdasarkan tanggal, Tapi sekarang ketika saya mengikuti ini selama setengah tahun myPeriodArr berisi [H0,H0] terlepas dari tanggal. Saya mencoba yang berikut ini selama setengah tahun.

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));

Saya ingin mendapatkan format tanggal di H1 dan H2 Ex: Jika periodAsDatesM berisi : [2018-12-01,2019-06-01,2019-12-01,2020-06-01] maka myPeriodArr seharusnya : [H2,H1,H2,H1]

0
Yogesh Kudikala 11 April 2020, 09:43

1 menjawab

Jawaban Terbaik

Berdasarkan tag pertanyaan Anda, sepertinya Anda menggunakan momentjs. Ada masalah tentang ini di project GitHub momentjs.

Diadaptasi dari komentar di sana:

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}`
1
Cameron Little 11 April 2020, 13:11