init project
This commit is contained in:
129
storage/app/public/assets/libs/moment/moment-precise-range.js
Normal file
129
storage/app/public/assets/libs/moment/moment-precise-range.js
Normal file
@@ -0,0 +1,129 @@
|
||||
if (typeof moment === "undefined" && typeof require === 'function') {
|
||||
var moment = require('moment');
|
||||
}
|
||||
|
||||
(function(moment) {
|
||||
var STRINGS = {
|
||||
nodiff: '',
|
||||
year: 'year',
|
||||
years: 'years',
|
||||
month: 'month',
|
||||
months: 'months',
|
||||
day: 'day',
|
||||
days: 'days',
|
||||
hour: 'hour',
|
||||
hours: 'hours',
|
||||
minute: 'minute',
|
||||
minutes: 'minutes',
|
||||
second: 'second',
|
||||
seconds: 'seconds',
|
||||
delimiter: ' '
|
||||
};
|
||||
|
||||
function pluralize(num, word) {
|
||||
return num + ' ' + STRINGS[word + (num === 1 ? '' : 's')];
|
||||
}
|
||||
|
||||
function buildStringFromValues(yDiff, mDiff, dDiff, hourDiff, minDiff, secDiff){
|
||||
var result = [];
|
||||
|
||||
if (yDiff) {
|
||||
result.push(pluralize(yDiff, 'year'));
|
||||
}
|
||||
if (mDiff) {
|
||||
result.push(pluralize(mDiff, 'month'));
|
||||
}
|
||||
if (dDiff) {
|
||||
result.push(pluralize(dDiff, 'day'));
|
||||
}
|
||||
if (hourDiff) {
|
||||
result.push(pluralize(hourDiff, 'hour'));
|
||||
}
|
||||
if (minDiff) {
|
||||
result.push(pluralize(minDiff, 'minute'));
|
||||
}
|
||||
if (secDiff) {
|
||||
result.push(pluralize(secDiff, 'second'));
|
||||
}
|
||||
|
||||
return result.join(STRINGS.delimiter);
|
||||
}
|
||||
|
||||
function buildValueObject(yDiff, mDiff, dDiff, hourDiff, minDiff, secDiff, firstDateWasLater) {
|
||||
return {
|
||||
"years" : yDiff,
|
||||
"months" : mDiff,
|
||||
"days" : dDiff,
|
||||
"hours" : hourDiff,
|
||||
"minutes" : minDiff,
|
||||
"seconds" : secDiff,
|
||||
"firstDateWasLater" : firstDateWasLater
|
||||
}
|
||||
}
|
||||
moment.fn.preciseDiff = function(d2, returnValueObject) {
|
||||
return moment.preciseDiff(this, d2, returnValueObject);
|
||||
};
|
||||
|
||||
moment.preciseDiff = function(d1, d2, returnValueObject) {
|
||||
var m1 = moment(d1), m2 = moment(d2), firstDateWasLater;
|
||||
|
||||
m1.add(m2.utcOffset() - m1.utcOffset(), 'minutes'); // shift timezone of m1 to m2
|
||||
|
||||
if (m1.isSame(m2)) {
|
||||
if (returnValueObject) {
|
||||
return buildValueObject(0, 0, 0, 0, 0, 0, false);
|
||||
} else {
|
||||
return STRINGS.nodiff;
|
||||
}
|
||||
}
|
||||
if (m1.isAfter(m2)) {
|
||||
var tmp = m1;
|
||||
m1 = m2;
|
||||
m2 = tmp;
|
||||
firstDateWasLater = true;
|
||||
} else {
|
||||
firstDateWasLater = false;
|
||||
}
|
||||
|
||||
var yDiff = m2.year() - m1.year();
|
||||
var mDiff = m2.month() - m1.month();
|
||||
var dDiff = m2.date() - m1.date();
|
||||
var hourDiff = m2.hour() - m1.hour();
|
||||
var minDiff = m2.minute() - m1.minute();
|
||||
var secDiff = m2.second() - m1.second();
|
||||
|
||||
if (secDiff < 0) {
|
||||
secDiff = 60 + secDiff;
|
||||
minDiff--;
|
||||
}
|
||||
if (minDiff < 0) {
|
||||
minDiff = 60 + minDiff;
|
||||
hourDiff--;
|
||||
}
|
||||
if (hourDiff < 0) {
|
||||
hourDiff = 24 + hourDiff;
|
||||
dDiff--;
|
||||
}
|
||||
if (dDiff < 0) {
|
||||
var daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), "YYYY-MM").subtract(1, 'M').daysInMonth();
|
||||
if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03
|
||||
dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);
|
||||
} else {
|
||||
dDiff = daysInLastFullMonth + dDiff;
|
||||
}
|
||||
mDiff--;
|
||||
}
|
||||
if (mDiff < 0) {
|
||||
mDiff = 12 + mDiff;
|
||||
yDiff--;
|
||||
}
|
||||
|
||||
if (returnValueObject) {
|
||||
return buildValueObject(yDiff, mDiff, dDiff, hourDiff, minDiff, secDiff, firstDateWasLater);
|
||||
} else {
|
||||
return buildStringFromValues(yDiff, mDiff, dDiff, hourDiff, minDiff, secDiff);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
}(moment));
|
||||
9977
storage/app/public/assets/libs/moment/moment.js
Normal file
9977
storage/app/public/assets/libs/moment/moment.js
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user