Javascript Moment.js可以根据日期优雅高效地开始为期两周的课程
我需要根据给定日期计算支付期的开始时间。支付期为周三至两周后的周二。因此,给定一个付款期开始日期(a)和另一个日期(b),我需要计算付款期开始日期(c) 我使用Moment.js来处理日期和时区,所以自然的做法是也使用它 我可以这样做:Javascript Moment.js可以根据日期优雅高效地开始为期两周的课程,javascript,performance,momentjs,Javascript,Performance,Momentjs,我需要根据给定日期计算支付期的开始时间。支付期为周三至两周后的周二。因此,给定一个付款期开始日期(a)和另一个日期(b),我需要计算付款期开始日期(c) 我使用Moment.js来处理日期和时区,所以自然的做法是也使用它 我可以这样做: import 'moment' from 'moment-timezone' const tzString = 'America/New_York' const oneStartOfPayPeriod = '1/25/2017' const dateForm
import 'moment' from 'moment-timezone'
const tzString = 'America/New_York'
const oneStartOfPayPeriod = '1/25/2017'
const dateFormatString = 'M/DD/YYYY'
let a = moment(oneStartOfPayPeriod).tz(tzString)
let b1 = moment('1/26/2017', dateFormatString).tz(tzString)
let b2 = moment('11/23/1999', dateForamtString).tz(tzString)
const getDaysPastPayPeriod = b => Math.abs(
b.startOf('day')
.diff(
a.startOf('day'),
'days'
) % 14)
const getStartOfPayPeriod = b => b.subtract(getDaysPastPayPeriod(b), 'days')
let [c1, c2] = [getStartOfPayPeriod(b1), getStartOfPayPeriod(b2)]
我还没有测试,因为我在写这个问题的时候就写了:)
我想知道:
(虽然这比我开始写这个问题之前想象的要好)不要使用没有参数的矩字符串解析器,字符串不是ISO 8601格式的(请参阅),而是在您的情况下使用:
矩('1/26/2017','M/DD/YYYY')
谢谢您提供的信息,我将编辑我的问题。