From 2c74f09bb870c717669f273ba7d4aa1637dcccf1 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 23 Apr 2009 13:39:42 -0400 Subject: 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. --- underlays/javascript/relativedate.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'underlays') diff --git a/underlays/javascript/relativedate.js b/underlays/javascript/relativedate.js index 8e05d4065..5142332f1 100644 --- a/underlays/javascript/relativedate.js +++ b/underlays/javascript/relativedate.js @@ -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++) { -- cgit v1.2.3