if (dt < 30)
r = asprintf(&buf, "Just now");
- else if (dt < (MINUTE + 30))
+ else if (dt < (MINUTE * 2))
r = asprintf(&buf, "One minute ago");
- else if (dt < (HOUR + 100))
- r = asprintf(&buf, "%d minutes ago", (int)dt/60);
+ else if (dt < (HOUR * 2))
+ r = asprintf(&buf, "%dmin ago", (int)dt/60);
else if (dt < (HOUR * 4))
- r = asprintf(&buf, "%d hours ago", (int)dt/3600);
+ r = asprintf(&buf, "%dh ago", (int)dt/3600);
else if (dt <= DAY) {
- struct tm *f_time = gmtime(&date);
- EINA_SAFETY_ON_NULL_GOTO(f_time, err_gmtime);
+ struct tm *f_time = localtime(&date);
r = asprintf(&buf, "%02d:%02d", f_time->tm_hour,
f_time->tm_min);
} else if (dt < WEEK) {
char tmp[256];
struct tm *tm = localtime(&date);
strftime(tmp, sizeof(tmp), "%A", tm);
- int days = dt / DAY;
- r = asprintf(&buf, "%s, %d days ago", tmp, days);
+ r = asprintf(&buf, "%s", tmp);
} else {
char tmp[256];
struct tm *tm = localtime(&date);
buf = strdup("");
return buf;
+}
+
+char *date_short_format(time_t date)
+{
+ time_t now = time(NULL);
+ double dt = difftime(now, date);
+ char *buf;
+ int r;
+
+ if (dt <= DAY) {
+ struct tm *f_time = localtime(&date);
+ r = asprintf(&buf, "%02d:%02d", f_time->tm_hour,
+ f_time->tm_min);
+ } else if (dt < WEEK) {
+ char tmp[256];
+ struct tm *tm = localtime(&date);
+ strftime(tmp, sizeof(tmp), "%A", tm);
+ r = asprintf(&buf, "%s", tmp);
+ } else {
+ char tmp[256];
+ struct tm *tm = localtime(&date);
+ strftime(tmp, sizeof(tmp), "%x", tm);
+ r = asprintf(&buf, "%s", tmp);
+ }
+
+ if (r < 0)
+ buf = strdup("");
-err_gmtime:
- return strdup("");
+ return buf;
}
Evas_Object *picture_icon_get(Evas_Object *parent, const char *picture)