feat: add components
This commit is contained in:
66
components/component-time.js
Normal file
66
components/component-time.js
Normal file
@@ -0,0 +1,66 @@
|
||||
var getMillis = (date) => {
|
||||
if (date == null) { return 0; }
|
||||
if (date instanceof java.util.Date) {
|
||||
return date.getTime();
|
||||
}
|
||||
return date;
|
||||
};
|
||||
|
||||
var formatDuration = (date) => {
|
||||
var millis = getMillis(date);
|
||||
var diffMillis = $$.date().millis() - millis;
|
||||
if (diffMillis < 3000) {
|
||||
return 'just now';
|
||||
}
|
||||
var secs = $$.num(diffMillis).divr(1000, 0, null).along();
|
||||
if (secs < 60) {
|
||||
return secs + 's';
|
||||
}
|
||||
var mins = $$.num(secs).divr(60, 0, null).along();
|
||||
if (mins < 60) {
|
||||
return mins + 'm';
|
||||
}
|
||||
var hours = $$.num(mins).divr(60, 0, null).along();
|
||||
if (hours < 24) {
|
||||
return hours + 'h';
|
||||
}
|
||||
var days = $$.num(hours).divr(24, 0, null).along();
|
||||
if (days < 31) {
|
||||
return days + 'd';
|
||||
}
|
||||
return $$.date().fmt('yyyy-MM-dd').format(new java.util.Date(millis));
|
||||
};
|
||||
|
||||
|
||||
var formatDueInDays = (date) => {
|
||||
var millis = getMillis(date);
|
||||
var diffMillis = millis - $$.date().millis();
|
||||
var isMinus = diffMillis < 0;
|
||||
if (isMinus) {
|
||||
diffMillis = -diffMillis;
|
||||
}
|
||||
var prefix = isMinus ? '-' : '';
|
||||
var secs = $$.num(diffMillis).divr(1000, 0, null).along();
|
||||
if (secs < 60) {
|
||||
return 'in ' + prefix + secs + 's';
|
||||
}
|
||||
var mins = $$.num(secs).divr(60, 0, null).along();
|
||||
if (mins < 60) {
|
||||
return 'in ' + prefix + secs + 'm';
|
||||
}
|
||||
var hours = $$.num(mins).divr(60, 0, null).along();
|
||||
if (hours < 24) {
|
||||
return 'in ' + prefix + hours + 'h';
|
||||
}
|
||||
var days = $$.num(hours).divr(24, 0, null).along();
|
||||
if (days < 31) {
|
||||
return 'in ' + prefix + days + 'd';
|
||||
}
|
||||
return $$.date().fmt('yyyy-MM-dd').format(new java.util.Date(millis));
|
||||
};
|
||||
|
||||
if (typeof exports == 'object') {
|
||||
exports.getMillis = getMillis;
|
||||
exports.formatDuration = formatDuration;
|
||||
exports.formatDueInDays = formatDueInDays;
|
||||
}
|
||||
Reference in New Issue
Block a user