relativedate: Deal with clock skew.

If the server has a clock running a bit ahead of the web browsing client,
relativedate could cause somewhat confusing displays like "3 seconds from now"
for just posted things.

As a hack, avoid displaying times in the future if they're less than a
small slip forward. I chose 30 minutes because both client and server could
be wrong in different directions, while it's still close enough that "just
now" is not horribly wrong.
master
Joey Hess 2009-04-23 13:39:42 -04:00
parent 86d6b40070
commit 2c74f09bb8
2 changed files with 7 additions and 0 deletions

1
debian/changelog vendored
View File

@ -7,6 +7,7 @@ ikiwiki (3.11) UNRELEASED; urgency=low
allowing the admin to see it during wiki setup.
Closes: #520015
* websetup: If setup fails, restore old setup file.
* relativedate: Deal with clock skew.
-- Joey Hess <joeyh@debian.org> Tue, 21 Apr 2009 21:41:38 -0400

View File

@ -45,6 +45,12 @@ function relativeDate(date) {
var offset = date.getTime() - now.getTime();
var seconds = Math.round(Math.abs(offset) / 1000);
// hack to avoid reading just in the future if there is a minor
// amount of clock slip
if (offset >= 0 && seconds < 30 * timeUnits['minute']) {
return "just now";
}
var ret = "";
var shown = 0;
for (i = 0; i < timeUnitOrder.length; i++) {