@@ -152,18 +152,24 @@ const activeSeries = computed(() => {
);
});
-const formatDate = (dateStr) => {
- if (!dateStr) return "";
- const d = new Date(dateStr);
- const opts = { month: "short", day: "numeric" };
- if (d.getFullYear() !== new Date().getFullYear()) opts.year = "numeric";
+const formatDate = (event) => {
+ if (!event?.startDate) return "";
+ const tz = event.displayTimezone || "America/Toronto";
+ const d = new Date(event.startDate);
+ const opts = { month: "short", day: "numeric", timeZone: tz };
+ const dYear = d.toLocaleDateString("en-US", { year: "numeric", timeZone: tz });
+ const nowYear = new Date().toLocaleDateString("en-US", { year: "numeric", timeZone: tz });
+ if (dYear !== nowYear) opts.year = "numeric";
return d.toLocaleDateString("en-US", opts);
};
-const formatTime = (dateStr) => {
- if (!dateStr) return "";
- const d = new Date(dateStr);
- return d.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit" });
+const formatTime = (event) => {
+ if (!event?.startDate) return "";
+ return new Date(event.startDate).toLocaleTimeString("en-US", {
+ hour: "numeric",
+ minute: "2-digit",
+ timeZone: event.displayTimezone || "America/Toronto",
+ });
};
const formatLocation = (event) => {
diff --git a/app/pages/member/dashboard.vue b/app/pages/member/dashboard.vue
index de91d71..91d088b 100644
--- a/app/pages/member/dashboard.vue
+++ b/app/pages/member/dashboard.vue
@@ -60,9 +60,7 @@
:to="`/events/${evt.slug || evt._id}`"
class="event-item"
>
- {{
- formatEventDate(evt.startDate)
- }}
+ {{ formatEventDate(evt) }}
{{ evt.title }}
@@ -365,20 +363,22 @@ const getEventImageUrl = (featureImage) => {
return "";
};
-const formatEventDate = (dateString) => {
- const date = new Date(dateString);
+const formatEventDate = (event) => {
+ if (!event?.startDate) return "";
return new Intl.DateTimeFormat("en-US", {
month: "short",
day: "numeric",
- }).format(date);
+ timeZone: event.displayTimezone || "America/Toronto",
+ }).format(new Date(event.startDate));
};
-const formatEventTime = (dateString) => {
- const date = new Date(dateString);
+const formatEventTime = (event) => {
+ if (!event?.startDate) return "";
return new Intl.DateTimeFormat("en-US", {
hour: "numeric",
minute: "2-digit",
- }).format(date);
+ timeZone: event.displayTimezone || "America/Toronto",
+ }).format(new Date(event.startDate));
};
const formatMemberSince = (dateString) => {