Added duration to events. Backported a few API changes
This commit is contained in:
@@ -625,74 +625,63 @@ function timeString(ms, includeSuffix)
|
||||
var suffix = "";
|
||||
if (includeSuffix) {
|
||||
if (ms < 0) {
|
||||
suffix = "from now";
|
||||
suffix = " from now";
|
||||
ms = -ms;
|
||||
} else {
|
||||
suffix = "ago";
|
||||
suffix = " ago";
|
||||
}
|
||||
}
|
||||
|
||||
// Break into units
|
||||
var years = 0, days = 0, hours = 0, minutes = 0, seconds = 0;
|
||||
while (ms >= 31536000000) {
|
||||
ms -= 31536000000;
|
||||
years++;
|
||||
// Break into years, days, hours, minutes, seconds, and ms
|
||||
var units = [0, 0, 0, 0, 0, ms.toFixed(0)];
|
||||
var unitNames = ["year", "day", "hour", "minute", "second", "millisecond"];
|
||||
while (units[5] >= 31536000000) {
|
||||
units[5] -= 31536000000;
|
||||
units[0]++;
|
||||
}
|
||||
while (ms >= 86400000) {
|
||||
ms -= 86400000;
|
||||
days++;
|
||||
while (units[5] >= 86400000) {
|
||||
units[5] -= 86400000;
|
||||
units[1]++;
|
||||
}
|
||||
while (ms >= 3600000) {
|
||||
ms -= 3600000;
|
||||
hours++;
|
||||
while (units[5] >= 3600000) {
|
||||
units[5] -= 3600000;
|
||||
units[2]++;
|
||||
}
|
||||
while (ms >= 60000) {
|
||||
ms -= 60000;
|
||||
minutes++;
|
||||
while (units[5] >= 60000) {
|
||||
units[5] -= 60000;
|
||||
units[3]++;
|
||||
}
|
||||
while (ms >= 1000) {
|
||||
ms -= 1000;
|
||||
seconds++;
|
||||
while (units[5] >= 1000) {
|
||||
units[5] -= 1000;
|
||||
units[4]++;
|
||||
}
|
||||
|
||||
// Stringify
|
||||
if (years == 1)
|
||||
years = years + " year";
|
||||
else
|
||||
years = years + " years";
|
||||
if (days == 1)
|
||||
days = days + " day";
|
||||
else
|
||||
days = days + " days";
|
||||
if (hours == 1)
|
||||
hours = hours + " hour";
|
||||
else
|
||||
hours = hours + " hours";
|
||||
if (minutes == 1)
|
||||
minutes = minutes + " minute";
|
||||
else
|
||||
minutes = minutes + " minutes";
|
||||
if (seconds == 1)
|
||||
seconds = seconds + " second";
|
||||
else
|
||||
seconds = seconds + " seconds";
|
||||
if (ms == 1)
|
||||
ms = ms + " millisecond";
|
||||
else
|
||||
ms = ms + " milliseconds";
|
||||
// Grab the first two non-zero units
|
||||
var first = "";
|
||||
var second = "";
|
||||
for (var i = 0; i < units.length; i++) {
|
||||
if (!units[i])
|
||||
continue;
|
||||
|
||||
// Return the final string
|
||||
if (years[0] != "0")
|
||||
return years + " " + days + " " + suffix;
|
||||
if (days[0] != "0")
|
||||
return days + " " + hours + " " + suffix;
|
||||
if (hours[0] != "0")
|
||||
return hours + " " + minutes + " " + suffix;
|
||||
if (minutes[0] != "0")
|
||||
return minutes + " " + seconds + " " + suffix;
|
||||
if (seconds[0] != "0")
|
||||
return seconds + " " + ms + " " + suffix;
|
||||
return ms + " " + suffix;
|
||||
if (!first.length) {
|
||||
first = units[i] + " " + unitNames[i];
|
||||
if (units[i] > 1)
|
||||
first += "s";
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!second.length) {
|
||||
second = " " + units[i] + " " + unitNames[i];
|
||||
if (units[i] > 1)
|
||||
second += "s";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!first.length)
|
||||
return "0 milliseconds" + suffix;
|
||||
else
|
||||
return first + second + suffix;
|
||||
}
|
||||
|
||||
// Translates a kernel slug into a label and sets the contents of an element
|
||||
|
||||
Reference in New Issue
Block a user