change approach again
This commit is contained in:
85
node_modules/moment/src/lib/duration/humanize.js
generated
vendored
Normal file
85
node_modules/moment/src/lib/duration/humanize.js
generated
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
import { createDuration } from './create';
|
||||
|
||||
var round = Math.round;
|
||||
var thresholds = {
|
||||
ss: 44, // a few seconds to seconds
|
||||
s : 45, // seconds to minute
|
||||
m : 45, // minutes to hour
|
||||
h : 22, // hours to day
|
||||
d : 26, // days to month
|
||||
M : 11 // months to year
|
||||
};
|
||||
|
||||
// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
|
||||
function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
|
||||
return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
|
||||
}
|
||||
|
||||
function relativeTime (posNegDuration, withoutSuffix, locale) {
|
||||
var duration = createDuration(posNegDuration).abs();
|
||||
var seconds = round(duration.as('s'));
|
||||
var minutes = round(duration.as('m'));
|
||||
var hours = round(duration.as('h'));
|
||||
var days = round(duration.as('d'));
|
||||
var months = round(duration.as('M'));
|
||||
var years = round(duration.as('y'));
|
||||
|
||||
var a = seconds <= thresholds.ss && ['s', seconds] ||
|
||||
seconds < thresholds.s && ['ss', seconds] ||
|
||||
minutes <= 1 && ['m'] ||
|
||||
minutes < thresholds.m && ['mm', minutes] ||
|
||||
hours <= 1 && ['h'] ||
|
||||
hours < thresholds.h && ['hh', hours] ||
|
||||
days <= 1 && ['d'] ||
|
||||
days < thresholds.d && ['dd', days] ||
|
||||
months <= 1 && ['M'] ||
|
||||
months < thresholds.M && ['MM', months] ||
|
||||
years <= 1 && ['y'] || ['yy', years];
|
||||
|
||||
a[2] = withoutSuffix;
|
||||
a[3] = +posNegDuration > 0;
|
||||
a[4] = locale;
|
||||
return substituteTimeAgo.apply(null, a);
|
||||
}
|
||||
|
||||
// This function allows you to set the rounding function for relative time strings
|
||||
export function getSetRelativeTimeRounding (roundingFunction) {
|
||||
if (roundingFunction === undefined) {
|
||||
return round;
|
||||
}
|
||||
if (typeof(roundingFunction) === 'function') {
|
||||
round = roundingFunction;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// This function allows you to set a threshold for relative time strings
|
||||
export function getSetRelativeTimeThreshold (threshold, limit) {
|
||||
if (thresholds[threshold] === undefined) {
|
||||
return false;
|
||||
}
|
||||
if (limit === undefined) {
|
||||
return thresholds[threshold];
|
||||
}
|
||||
thresholds[threshold] = limit;
|
||||
if (threshold === 's') {
|
||||
thresholds.ss = limit - 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function humanize (withSuffix) {
|
||||
if (!this.isValid()) {
|
||||
return this.localeData().invalidDate();
|
||||
}
|
||||
|
||||
var locale = this.localeData();
|
||||
var output = relativeTime(this, !withSuffix, locale);
|
||||
|
||||
if (withSuffix) {
|
||||
output = locale.pastFuture(+this, output);
|
||||
}
|
||||
|
||||
return locale.postformat(output);
|
||||
}
|
Reference in New Issue
Block a user