fix: human readable timestamps
This commit is contained in:
+29
-1
@@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.jnss.me/joakim/opal/internal/engine"
|
"git.jnss.me/joakim/opal/internal/engine"
|
||||||
"git.jnss.me/joakim/opal/internal/sync"
|
"git.jnss.me/joakim/opal/internal/sync"
|
||||||
@@ -471,5 +472,32 @@ func getLocalChanges(since int64) ([]*engine.Task, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func formatTimestamp(ts int64) string {
|
func formatTimestamp(ts int64) string {
|
||||||
return fmt.Sprintf("%d", ts) // Simple for now, can enhance later
|
t := time.Unix(ts, 0)
|
||||||
|
now := time.Now()
|
||||||
|
diff := now.Sub(t)
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case diff < time.Minute:
|
||||||
|
return "just now"
|
||||||
|
case diff < time.Hour:
|
||||||
|
m := int(diff.Minutes())
|
||||||
|
if m == 1 {
|
||||||
|
return "1 minute ago"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%d minutes ago", m)
|
||||||
|
case diff < 24*time.Hour:
|
||||||
|
h := int(diff.Hours())
|
||||||
|
if h == 1 {
|
||||||
|
return "1 hour ago"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%d hours ago", h)
|
||||||
|
case diff < 7*24*time.Hour:
|
||||||
|
d := int(diff.Hours() / 24)
|
||||||
|
if d == 1 {
|
||||||
|
return "yesterday"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%d days ago", d)
|
||||||
|
default:
|
||||||
|
return t.Format("2006-01-02 15:04")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user