1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

humanedate

This commit is contained in:
grafixeyehero 2019-10-09 19:37:49 +03:00
parent 07aa20a2f7
commit 2c111d2a59

View file

@ -1,8 +1,9 @@
define(["datetime"], function(datetime) { define(["datetime"], function (datetime) {
"use strict"; "use strict";
function humaneDate(date_str) { function humaneDate(date_str) {
var format, time_formats = [ var format;
var time_formats = [
[90, "a minute"], [90, "a minute"],
[3600, "minutes", 60], [3600, "minutes", 60],
[5400, "an hour"], [5400, "an hour"],
@ -15,14 +16,27 @@ define(["datetime"], function(datetime) {
[31536e3, "months", 2628e3], [31536e3, "months", 2628e3],
[47304e3, "a year"], [47304e3, "a year"],
[31536e5, "years", 31536e3] [31536e5, "years", 31536e3]
], ];
dt = new Date, var dt = new Date();
date = datetime.parseISO8601Date(date_str, !0), var date = datetime.parseISO8601Date(date_str, true);
seconds = (dt - date) / 1e3, var seconds = (dt - date) / 1e3;
i = 0; var i = 0;
for (seconds < 0 && (seconds = Math.abs(seconds)); format = time_formats[i++];)
if (seconds < format[0]) return 2 == format.length ? format[1] + " ago" : Math.round(seconds / format[2]) + " " + format[1] + " ago"; for (seconds < 0 && (seconds = Math.abs(seconds)); format = time_formats[i++];) {
return seconds > 47304e5 ? Math.round(seconds / 47304e5) + " centuries ago" : date_str if (seconds < format[0]) {
if (2 == format.length) {
return format[1] + " ago";
}
return Math.round(seconds / format[2]) + " " + format[1] + " ago";
}
}
if (seconds > 47304e5) {
return Math.round(seconds / 47304e5) + " centuries ago";
}
return date_str;
} }
function humaneElapsed(firstDateStr, secondDateStr) { function humaneElapsed(firstDateStr, secondDateStr) {
@ -30,12 +44,10 @@ define(["datetime"], function(datetime) {
var dateOne = new Date(firstDateStr); var dateOne = new Date(firstDateStr);
var dateTwo = new Date(secondDateStr); var dateTwo = new Date(secondDateStr);
var delta = (dateTwo.getTime() - dateOne.getTime()) / 1e3; var delta = (dateTwo.getTime() - dateOne.getTime()) / 1e3;
var days = Math.floor(delta % 31536e3 / 86400); var days = Math.floor(delta % 31536e3 / 86400);
var hours = Math.floor(delta % 31536e3 % 86400 / 3600); var hours = Math.floor(delta % 31536e3 % 86400 / 3600);
var minutes = Math.floor(delta % 31536e3 % 86400 % 3600 / 60); var minutes = Math.floor(delta % 31536e3 % 86400 % 3600 / 60);
var seconds = Math.round(delta % 31536e3 % 86400 % 3600 % 60); var seconds = Math.round(delta % 31536e3 % 86400 % 3600 % 60);
var elapsed = ""; var elapsed = "";
elapsed += 1 == days ? days + " day " : ""; elapsed += 1 == days ? days + " day " : "";
elapsed += days > 1 ? days + " days " : ""; elapsed += days > 1 ? days + " days " : "";
@ -46,15 +58,13 @@ define(["datetime"], function(datetime) {
elapsed += elapsed.length > 0 ? "and " : ""; elapsed += elapsed.length > 0 ? "and " : "";
elapsed += 1 == seconds ? seconds + " second" : ""; elapsed += 1 == seconds ? seconds + " second" : "";
elapsed += 0 == seconds || seconds > 1 ? seconds + " seconds" : ""; elapsed += 0 == seconds || seconds > 1 ? seconds + " seconds" : "";
return elapsed; return elapsed;
} }
window.humaneDate = humaneDate; window.humaneDate = humaneDate;
window.humaneElapsed = humaneElapsed; window.humaneElapsed = humaneElapsed;
return { return {
humaneDate: humaneDate, humaneDate: humaneDate,
humaneElapsed: humaneElapsed humaneElapsed: humaneElapsed
} };
}); });