Merge branch 'show_timestamp_after_7d' of https://github.com/benharri-forks/social-app into main

zio/stable
Paul Frazee 2023-05-30 18:20:26 -05:00
commit a11a1b7657
2 changed files with 15 additions and 9 deletions

View File

@ -176,16 +176,20 @@ describe('ago', () => {
new Date().setMinutes(new Date().getMinutes() - 10), new Date().setMinutes(new Date().getMinutes() - 10),
new Date().setHours(new Date().getHours() - 1), new Date().setHours(new Date().getHours() - 1),
new Date().setDate(new Date().getDate() - 1), new Date().setDate(new Date().getDate() - 1),
new Date().setDate(new Date().getDate() - 6),
new Date().setDate(new Date().getDate() - 7),
new Date().setMonth(new Date().getMonth() - 1), new Date().setMonth(new Date().getMonth() - 1),
] ]
const outputs = [ const outputs = [
new Date(1671461038).toLocaleDateString(), new Date(1671461038).toLocaleDateString('en-us', {year: 'numeric', month: 'short', day: 'numeric'}),
new Date('04 Dec 1995 00:12:00 GMT').toLocaleDateString(), new Date('04 Dec 1995 00:12:00 GMT').toLocaleDateString('en-us', {year: 'numeric', month: 'short', day: 'numeric'}),
'0s', '0s',
'10m', '10m',
'1h', '1h',
'1d', '1d',
'1mo', '6d',
new Date(new Date().setDate(new Date().getDate() - 7)).toLocaleDateString('en-us', {year: 'numeric', month: 'short', day: 'numeric'}),
new Date(new Date().setMonth(new Date().getMonth() - 1)).toLocaleDateString('en-us', {year: 'numeric', month: 'short', day: 'numeric'}),
] ]
it('correctly calculates how much time passed, in a string', () => { it('correctly calculates how much time passed, in a string', () => {

View File

@ -1,8 +1,8 @@
const MINUTE = 60 const MINUTE = 60
const HOUR = MINUTE * 60 const HOUR = MINUTE * 60
const DAY = HOUR * 24 const DAY = HOUR * 24
const MONTH = DAY * 28 const WEEK = DAY * 7
const YEAR = DAY * 365
export function ago(date: number | string | Date): string { export function ago(date: number | string | Date): string {
let ts: number let ts: number
if (typeof date === 'string') { if (typeof date === 'string') {
@ -19,12 +19,14 @@ export function ago(date: number | string | Date): string {
return `${Math.floor(diffSeconds / MINUTE)}m` return `${Math.floor(diffSeconds / MINUTE)}m`
} else if (diffSeconds < DAY) { } else if (diffSeconds < DAY) {
return `${Math.floor(diffSeconds / HOUR)}h` return `${Math.floor(diffSeconds / HOUR)}h`
} else if (diffSeconds < MONTH) { } else if (diffSeconds < WEEK) {
return `${Math.floor(diffSeconds / DAY)}d` return `${Math.floor(diffSeconds / DAY)}d`
} else if (diffSeconds < YEAR) {
return `${Math.floor(diffSeconds / MONTH)}mo`
} else { } else {
return new Date(ts).toLocaleDateString() return new Date(ts).toLocaleDateString('en-us', {
year: 'numeric',
month: 'short',
day: 'numeric',
})
} }
} }