git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] show_date(): fix relative dates

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 20, 2007, 21:21 UTC
Message-ID
<Pine.LNX.4.63.0701202203260.22628@wbgn013.biozentrum.uni-wuerzburg.de>

We pass a timestamp (i.e. number of seconds elapsed since Jan 1 1970, 00:00:00 GMT) to the function. So there is no need to "fix" the timestamp according to the timezone.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
	Just compile & run this little test program to see what I mean:
	#include "cache.h"
	int main(int argc, char **argv)
	{
		time_t t = time(NULL);
		printf("%s\n", show_rfc2822_date(t, 100));
		printf("%s\n", show_date(t, 100, 0));
		printf("%s\n", show_date(t, 0, 0));
		printf("%s\n", show_date(t, 100, 1));
		printf("%s\n", show_date(t, 0, 1));
		return 0;
	}
	Here, it outputs this:
	Sat, 20 Jan 2007 22:20:42 +0100
	Sat Jan 20 22:20:42 2007 +0100
	Sat Jan 20 21:20:42 2007 +0000
	in the future
	0 seconds ago
	Noticed that "in the future"?
 date.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/date.c b/date.c
index 7acb8cb..542c004 100644
--- a/date.c
+++ b/date.c
@@ -62,12 +62,11 @@ const char *show_date(unsigned long time, int tz, int relative)
 
 	if (relative) {
 		unsigned long diff;
-		time_t t = gm_time_t(time, tz);
 		struct timeval now;
 		gettimeofday(&now, NULL);
-		if (now.tv_sec < t)
+		if (now.tv_sec < time)
 			return "in the future";
-		diff = now.tv_sec - t;
+		diff = now.tv_sec - time;
 		if (diff < 90) {
 			snprintf(timebuf, sizeof(timebuf), "%lu seconds ago", diff);
 			return timebuf;
-- 
1.5.0.rc1.g956c1-dirty
Next: Junio C Hamano
Message 1 of 4 in “show_date(): fix relative dates”
  1. show_date(): fix relative datesJohannes Schindelin, Jan 20, 2007
  2. Junio C HamanoJan 21, 2007
  3. Johannes SchindelinJan 21, 2007
  4. Junio C HamanoJan 21, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.