github / relative-time-element

Web component extensions to the standard <time> element.
https://github.github.io/relative-time-element/examples/
MIT License
3.57k stars 170 forks source link

Force format to absolute iso8601 #293

Open ericslaw opened 1 month ago

ericslaw commented 1 month ago

This code runs on github.com and displays timestamps in relative formatting... but I really NEVER want to see timestamps in relative form.

I'd so much rather that 'last week' show up as '2024-09-26 19:05:24' or anything similar to iso8601.

Perhaps this just needs a new format string (for non-duration timestamps) of 'iso8601' ?

I can convince github pages to reveal an absolute timestamp with the following snippet pasted into the console.

document.querySelectorAll('relative-time[datetime]')
    .forEach( item => {
        item.setAttribute('format','datetime')
        item.setAttribute('formatStyle','long')
        item.setAttribute('precision','minute')
    });

... but I get 'Thu, Sep 26' which is way too short.

I can use this snippet to update the title to show what I want but I still have to hover

document.querySelectorAll('relative-time[datetime]')
    .forEach( item =>
        item.setAttribute(
            "title",
            new Date(
                Math.round(
                    Date.parse( item.getAttribute("datetime") )
                    / 60000 ) * 60000
            )
                .toISOString()
                .replace(/T/," ")
                .replace(/[.].*/,"")
                +" UTC"
        )
    )

perhaps I should be looking to convince Intl.DateTimeFormat with a Locale that emits iso8601 instead?