2016-08-31 9 views
1

私の目標は、金融四半期を表す2つのデータセットを比較することです。 APIの特徴は、取得リクエストごとに2つの日付(startDate(両端を含む)とendDate(これを含まない))が必要です。したがって、例えば、あなたが必要とする2016年7月の月のデータを取得するには:(Unixタイムスタンプである)の単一unixStartDate考えるMoment.jsを使用してUnixのタイムスタンプに基づいて財務四半期を決定する方法?

startDate = 20160701とendDate = 20160801.

を、私は(見つけたい1 )、startDateおよびendDate(2)前四半期のstartDateおよびendDateです。

これまでのところ私は問題なく、現在の四半期を決定するためにmoment.jsを使用することができます。
const currentQuarter = moment.unix(unixStartDate).utc().quarter();
私はおそらく、その情報に基づいてハックスイッチケースを作ることができますが、私はもっとエレガントな解決のために願っています。

Moment.jsにはmoment().startOf('quarter')も含まれていますが、適切な使い方を見つけられませんでした。 console.logは、オブジェクトが得られます。

Moment {_isAMomentObject: true, 
_isUTC: false, 
_pf: Object, 
_locale: Locale, 
_d: Fri Jul 01 2016 00:00:00 GMT-1000 (HST)…} 

答えて

2

は、ここで詳細なバージョンです:

const moment = require('moment'); 

let unixStartDate = ...; 

let current  = moment(unixStartDate); 
let currentStartOf = moment(current).startOf('quarter'); 
let currentEndOf = moment(current). endOf('quarter').add(1, 'day'); 

let previous  = moment(current).subtract(1, 'quarter'); 
let previousStartOf = moment(previous).startOf('quarter'); 
let previousEndOf = moment(previous). endOf('quarter').add(1, 'day'); 

console.log(
    'current ', 
    currentStartOf.format('YYYYMMDD'), 
    currentEndOf .format('YYYYMMDD') 
) 

console.log(
    'previous', 
    previousStartOf.format('YYYYMMDD'), 
    previousEndOf .format('YYYYMMDD') 
) 
+0

応答をいただき、ありがとうございます。私が調整する必要があったことの1つは、最初の 'unixStartDate'ではなく' Date'オブジェクトを瞬時に与えることでした。 したがって: 'let date = new Date(unixStartDate * 1000);' と 'let current = moment(date);' – Kwhitejr

関連する問題