1const dateFormat = new Intl.DateTimeFormat("sv", {
2 timeZone: "EST",
3 year: "numeric",
4 month: "2-digit",
5 hour: "2-digit",
6 day: "2-digit",
7 minute: "2-digit",
8});
9
10// YYYY-MM-DD HH:MM
11export function formatQuestionTimestamp(date: Date) {
12 return dateFormat.format(date);
13}
14
15// YYYY-MM-DDTHH:MM:00Z
16export function formatQuestionISOTimestamp(date: Date) {
17 const str = dateFormat.format(date);
18 return `${str.slice(0, 10)}T${str.slice(11)}-05:00`;
19}
20
21// YYMMDDHHMM
22export function formatQuestionId(date: Date) {
23 return formatQuestionTimestamp(date).replace(/[^\d]/g, "").slice(2, 12);
24}
25
26export function questionIdToTimestamp(id: string) {
27 if (id.length !== 10 || !/^\d+$/.test(id)) {
28 return null;
29 }
30 const date = new Date(
31 `20${id.slice(0, 2)}-${id.slice(2, 4)}-${id.slice(4, 6)} ${id.slice(6, 8)}:${id.slice(8, 10)}:00 EST`,
32 );
33 if (isNaN(date.getTime())) {
34 return null;
35 }
36 return date;
37}