[chore/performance] Reuse Intl.DateTimeFormat for formatting times (#4013)

This commit is contained in:
tobi
2025-04-15 10:04:47 +02:00
committed by GitHub
parent b510f3c539
commit 5b2fe1f9a0
2 changed files with 16 additions and 12 deletions

View File

@@ -315,22 +315,26 @@ function inLightbox(element) {
lightbox.pswp.currSlide.data.attachmentId;
}
// Define + reuse one DateTimeFormat (cheaper).
const dateTimeFormat = Intl.DateTimeFormat(
undefined,
{
year: 'numeric',
month: 'short',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
hour12: false
},
);
// Reformat time text to browser locale.
Array.from(document.getElementsByTagName('time')).forEach(timeTag => {
const datetime = timeTag.getAttribute('datetime');
const currentText = timeTag.textContent.trim();
// Only format if current text contains precise time.
if (currentText.match(/\d{2}:\d{2}/)) {
const date = new Date(datetime);
timeTag.textContent = date.toLocaleString(
undefined,
{
year: 'numeric',
month: 'short',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
hour12: false
},
);
timeTag.textContent = dateTimeFormat.format(date);
}
});

View File

@@ -18,7 +18,7 @@
*/ -}}
{{- define "ariaLabel" -}}
@{{ .Account.Acct -}}, {{ .CreatedAt | timestampPrecise -}} (server time)
@{{ .Account.Acct -}}, {{ .CreatedAt | timestampPrecise }} (server time)
{{- if .LanguageTag -}}
, language {{ .LanguageTag.DisplayStr -}}
{{- end -}}