diff --git a/src/Profile/Profile.js b/src/Profile/Profile.js index 89d7a43..4cb91db 100644 --- a/src/Profile/Profile.js +++ b/src/Profile/Profile.js @@ -51,6 +51,11 @@ class Profile extends Shadow { .color("var(--headertext") .width(70, pct) .textAlign("center") + .marginBottom(0.25, em) + + p("Joined " + this.convertDate(this.profile.created)) + .color("var(--headertext)") + .marginBottom(0.5, em) h2("Bio") .color("var(--headertext") @@ -113,7 +118,28 @@ class Profile extends Shadow { .position("fixed") .top(20, px) .zIndex(1000) - // }) + } + + convertDate(rawDate) { + const parsed = new Date(rawDate); + + if (isNaN(parsed.getTime())) return rawDate; + + const month = parsed.toLocaleString("en-US", { month: "long", timeZone: "UTC" }); + const day = parsed.getUTCDate(); + const year = parsed.getUTCFullYear(); + + const ordinal = (n) => { + const mod100 = n % 100; + if (mod100 >= 11 && mod100 <= 13) return `${n}th`; + switch (n % 10) { + case 1: return `${n}st`; + case 2: return `${n}nd`; + case 3: return `${n}rd`; + default: return `${n}th`; + } + }; + return `${month} ${ordinal(day)}, ${year}`; } }