MCPcopy
hub / github.com/xintaofei/codeg / formatRelativeTime

Function formatRelativeTime

src/components/layout/push-workspace.tsx:240–269  ·  view source on GitHub ↗
(
  dateStr: string,
  t: (
    key:
      | "time.monthsAgo"
      | "time.daysAgo"
      | "time.hoursAgo"
      | "time.minsAgo"
      | "time.justNow",
    values?: { count: number }
  ) => string
)

Source from the content-addressed store, hash-verified

238}
239
240function formatRelativeTime(
241 dateStr: string,
242 t: (
243 key:
244 | "time.monthsAgo"
245 | "time.daysAgo"
246 | "time.hoursAgo"
247 | "time.minsAgo"
248 | "time.justNow",
249 values?: { count: number }
250 ) => string
251): string {
252 const date = new Date(dateStr)
253 if (Number.isNaN(date.getTime())) return dateStr
254
255 const now = new Date()
256 const diffMs = now.getTime() - date.getTime()
257 const diffMin = Math.floor(diffMs / 60_000)
258 const diffHour = Math.floor(diffMin / 60)
259 const diffDay = Math.floor(diffHour / 24)
260
261 if (diffDay > 30) {
262 const diffMonth = Math.floor(diffDay / 30)
263 return t("time.monthsAgo", { count: diffMonth })
264 }
265 if (diffDay > 0) return t("time.daysAgo", { count: diffDay })
266 if (diffHour > 0) return t("time.hoursAgo", { count: diffHour })
267 if (diffMin > 0) return t("time.minsAgo", { count: diffMin })
268 return t("time.justNow", { count: 0 })
269}
270
271function parseDate(dateStr: string): Date | null {
272 const date = new Date(dateStr)

Callers 1

PushWorkspaceFunction · 0.70

Calls 1

tFunction · 0.50

Tested by

no test coverage detected