|
import { normalizeObjectUnits } from '../units/aliases'; |
|
import { getLocale } from '../locale/locales'; |
|
import isDurationValid from './valid.js'; |
|
|
|
export function Duration (duration) { |
|
var normalizedInput = normalizeObjectUnits(duration), |
|
years = normalizedInput.year || 0, |
|
quarters = normalizedInput.quarter || 0, |
|
months = normalizedInput.month || 0, |
|
weeks = normalizedInput.week || 0, |
|
days = normalizedInput.day || 0, |
|
hours = normalizedInput.hour || 0, |
|
minutes = normalizedInput.minute || 0, |
|
seconds = normalizedInput.second || 0, |
|
milliseconds = normalizedInput.millisecond || 0; |
|
|
|
this._isValid = isDurationValid(normalizedInput); |
|
|
|
|
|
this._milliseconds = +milliseconds + |
|
seconds * 1e3 + |
|
minutes * 6e4 + |
|
hours * 1000 * 60 * 60; |
|
|
|
|
|
this._days = +days + |
|
weeks * 7; |
|
|
|
|
|
|
|
this._months = +months + |
|
quarters * 3 + |
|
years * 12; |
|
|
|
this._data = {}; |
|
|
|
this._locale = getLocale(); |
|
|
|
this._bubble(); |
|
} |
|
|
|
export function isDuration (obj) { |
|
return obj instanceof Duration; |
|
} |
|
|