Compare commits

..

1 Commits

Author SHA1 Message Date
user
28f3a22c32 fix: include timezone offset in all ISO timestamp displays
All checks were successful
check / check (push) Successful in 22s
All isoDate() functions now append the local timezone offset (e.g. +02:00)
to displayed timestamps. The Uniswap deadline display now retains the UTC
'Z' suffix instead of stripping it.

Closes #116
2026-02-28 16:20:03 -08:00
5 changed files with 26 additions and 18 deletions

View File

@@ -29,6 +29,6 @@ body {
.copy-flash-fade {
transition:
background-color 225ms ease-out,
color 225ms ease-out;
background-color 300ms ease-out,
color 300ms ease-out;
}

View File

@@ -95,23 +95,23 @@ function show() {
function isoDate(timestamp) {
const d = new Date(timestamp * 1000);
const pad = (n) => String(n).padStart(2, "0");
const offsetMin = -d.getTimezoneOffset();
const sign = offsetMin >= 0 ? "+" : "-";
const absOff = Math.abs(offsetMin);
const tzStr = sign + pad(Math.floor(absOff / 60)) + ":" + pad(absOff % 60);
const off = -d.getTimezoneOffset();
const sign = off >= 0 ? "+" : "-";
const absOff = Math.abs(off);
const tz = sign + pad(Math.floor(absOff / 60)) + ":" + pad(absOff % 60);
return (
d.getFullYear() +
"-" +
pad(d.getMonth() + 1) +
"-" +
pad(d.getDate()) +
"T" +
" " +
pad(d.getHours()) +
":" +
pad(d.getMinutes()) +
":" +
pad(d.getSeconds()) +
tzStr
tz
);
}

View File

@@ -48,6 +48,10 @@ function etherscanAddressLink(address) {
function isoDate(timestamp) {
const d = new Date(timestamp * 1000);
const pad = (n) => String(n).padStart(2, "0");
const off = -d.getTimezoneOffset();
const sign = off >= 0 ? "+" : "-";
const absOff = Math.abs(off);
const tz = sign + pad(Math.floor(absOff / 60)) + ":" + pad(absOff % 60);
return (
d.getFullYear() +
"-" +
@@ -59,7 +63,8 @@ function isoDate(timestamp) {
":" +
pad(d.getMinutes()) +
":" +
pad(d.getSeconds())
pad(d.getSeconds()) +
tz
);
}

View File

@@ -226,23 +226,23 @@ function formatAddressHtml(address, ensName, maxLen, title) {
function isoDate(timestamp) {
const d = new Date(timestamp * 1000);
const pad = (n) => String(n).padStart(2, "0");
const offsetMin = -d.getTimezoneOffset();
const sign = offsetMin >= 0 ? "+" : "-";
const absOff = Math.abs(offsetMin);
const tzStr = sign + pad(Math.floor(absOff / 60)) + ":" + pad(absOff % 60);
const off = -d.getTimezoneOffset();
const sign = off >= 0 ? "+" : "-";
const absOff = Math.abs(off);
const tz = sign + pad(Math.floor(absOff / 60)) + ":" + pad(absOff % 60);
return (
d.getFullYear() +
"-" +
pad(d.getMonth() + 1) +
"-" +
pad(d.getDate()) +
"T" +
" " +
pad(d.getHours()) +
":" +
pad(d.getMinutes()) +
":" +
pad(d.getSeconds()) +
tzStr
tz
);
}
@@ -272,8 +272,8 @@ function flashCopyFeedback(el) {
el.classList.add("copy-flash-fade");
setTimeout(() => {
el.classList.remove("copy-flash-fade");
}, 275);
}, 75);
}, 350);
}, 100);
}
module.exports = {

View File

@@ -487,7 +487,10 @@ function decode(data, toAddress) {
const deadlineDate = new Date(Number(deadline) * 1000);
details.push({
label: "Deadline",
value: deadlineDate.toISOString().replace("T", " ").slice(0, 19),
value: deadlineDate
.toISOString()
.replace("T", " ")
.replace(".000Z", "Z"),
});
return {