summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nautilus-file.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/nautilus-file.c b/src/nautilus-file.c
index e3cbdfe20..a238d6998 100644
--- a/src/nautilus-file.c
+++ b/src/nautilus-file.c
@@ -4717,7 +4717,7 @@ nautilus_file_get_date_as_string (NautilusFile *file,
NautilusDateFormat date_format)
{
time_t file_time_raw;
- GDateTime *file_date, *now;
+ GDateTime *file_date_time, *now;
GDateTime *today_midnight;
gint days_ago;
gboolean use_24;
@@ -4728,13 +4728,20 @@ nautilus_file_get_date_as_string (NautilusFile *file,
if (!nautilus_file_get_date (file, date_type, &file_time_raw))
return NULL;
- file_date = g_date_time_new_from_unix_local (file_time_raw);
+ file_date_time = g_date_time_new_from_unix_local (file_time_raw);
if (date_format != NAUTILUS_DATE_FORMAT_FULL) {
+ GDateTime *file_date;
+
now = g_date_time_new_now_local ();
today_midnight = g_date_time_new_local (g_date_time_get_year (now),
g_date_time_get_month (now),
g_date_time_get_day_of_month (now),
- 0, 1, 0);
+ 0, 0, 0);
+
+ file_date = g_date_time_new_local (g_date_time_get_year (file_date_time),
+ g_date_time_get_month (file_date_time),
+ g_date_time_get_day_of_month (file_date_time),
+ 0, 0, 0);
days_ago = g_date_time_difference (today_midnight, file_date) / G_TIME_SPAN_DAY;
@@ -4832,6 +4839,7 @@ nautilus_file_get_date_as_string (NautilusFile *file,
}
}
+ g_date_time_unref (file_date);
g_date_time_unref (now);
g_date_time_unref (today_midnight);
} else {
@@ -4839,8 +4847,8 @@ nautilus_file_get_date_as_string (NautilusFile *file,
format = _("%c");
}
- result = g_date_time_format (file_date, format);
- g_date_time_unref (file_date);
+ result = g_date_time_format (file_date_time, format);
+ g_date_time_unref (file_date_time);
/* Replace ":" with ratio. Replacement is done afterward because g_date_time_format
* may fail with utf8 chars in some locales */