我的目标是比较两个代表金融季度的数据集。API的古怪之处在于每个get请求需要两个日期:startDate (包含)和endDate (独占)。因此,例如,要获得2016年7月的数据,你需要:
startDate = 20160701,endDate = 20160801。
给定单个unixStartDate (这是Unix时间戳),我希望找到(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)…}发布于 2016-08-31 07:58:55
下面是一个详细的版本:
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')
)https://stackoverflow.com/questions/39240692
复制相似问题