Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
68 lines
1.8 KiB
JavaScript
Executable file
68 lines
1.8 KiB
JavaScript
Executable file
'use strict';
|
|
|
|
var utils = window.utils || {};
|
|
|
|
if (!utils.time) {
|
|
(function() {
|
|
utils.time = {};
|
|
|
|
var _ = navigator.mozL10n.get;
|
|
|
|
utils.time.pretty = function(time, now) {
|
|
// 'now' attribute for test purposes.
|
|
var prettyDate = '';
|
|
|
|
if (!time) {
|
|
return prettyDate;
|
|
}
|
|
|
|
function roundToDay(date) {
|
|
var rounded = new Date(date);
|
|
rounded.setHours(0);
|
|
rounded.setMinutes(0);
|
|
rounded.setSeconds(0);
|
|
rounded.setMilliseconds(0);
|
|
return rounded;
|
|
}
|
|
|
|
now = now || Date.now();
|
|
var day_diff = (roundToDay(now) - roundToDay(time)) / 86400000;
|
|
if (!isNaN(day_diff)) {
|
|
// Woohh we are on the future here
|
|
if (day_diff < 0) {
|
|
prettyDate = (new Date(time)).toLocaleString(navigator.languages, {
|
|
year: '2-digit',
|
|
month: '2-digit',
|
|
day: '2-digit'
|
|
});
|
|
} else {
|
|
if (day_diff === 0) {
|
|
prettyDate = _('today');
|
|
} else if (day_diff === 1) {
|
|
prettyDate = _('yesterday');
|
|
} else if (day_diff < 6) {
|
|
prettyDate = (new Date(time)).toLocaleString(navigator.languages, {
|
|
weekday: 'long'
|
|
});
|
|
} else {
|
|
prettyDate = (new Date(time)).toLocaleString(navigator.languages, {
|
|
year: '2-digit',
|
|
month: '2-digit',
|
|
day: '2-digit'
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
var timeString = (new Date(time)).toLocaleString(navigator.languages, {
|
|
hour12: navigator.mozHour12,
|
|
hour: 'numeric',
|
|
minute: 'numeric'
|
|
});
|
|
|
|
//XXX: This order should not be hardcoded. Change once we have
|
|
// relative date/time in Intl
|
|
return prettyDate + ' ' + timeString;
|
|
};
|
|
})();
|
|
}
|