|
1 |
| -import format from "date-fns/format"; |
| 1 | +import format from "date-fns-tz/format"; |
| 2 | +import utcToZonedTime from "date-fns-tz/utcToZonedTime"; |
2 | 3 | import isValid from "date-fns/isValid";
|
| 4 | +import parseISO from "date-fns/parseISO"; |
| 5 | + |
3 | 6 | import differenceInCalendarDays from "date-fns/differenceInCalendarDays";
|
4 | 7 |
|
5 | 8 | const left = (total) => {
|
@@ -66,17 +69,33 @@ const getDates = (start, end) => {
|
66 | 69 | }
|
67 | 70 |
|
68 | 71 | const daysDuration = differenceInCalendarDays(endDate, startDate);
|
| 72 | + const parsedEndTime = parseISO(end); |
| 73 | + const parsedStartTime = parseISO(start); |
| 74 | + const endUtc = format( |
| 75 | + utcToZonedTime(parsedEndTime, "UTC"), |
| 76 | + "d MMMM - h:mm a zzz", |
| 77 | + { |
| 78 | + timeZone: "UTC", |
| 79 | + } |
| 80 | + ); |
| 81 | + const startUtc = format( |
| 82 | + utcToZonedTime(parsedStartTime, "UTC"), |
| 83 | + "d MMMM - h:mm a zzz", |
| 84 | + { |
| 85 | + timeZone: "UTC", |
| 86 | + } |
| 87 | + ); |
| 88 | + const endLocal = format(endDate, "(d MMMM - h:mm a zzz)"); |
| 89 | + const startLocal = format(startDate, "(d MMMM - h:mm a zzz)"); |
69 | 90 |
|
70 | 91 | const t = {
|
71 | 92 | contestStatus,
|
72 | 93 | start: startTime,
|
73 | 94 | end: endTime,
|
74 | 95 | startDay: isValid(startDate) ? format(startDate, "d MMMM yyyy") : "",
|
75 | 96 | endDay: isValid(endDate) ? format(endDate, "d MMMM yyyy") : "",
|
76 |
| - startTime: isValid(startDate) |
77 |
| - ? format(startDate, "d MMMM yyyy - h:mm a") |
78 |
| - : "", |
79 |
| - endTime: isValid(endDate) ? format(endDate, "d MMMM yyyy - h:mm a") : "", |
| 97 | + startTime: isValid(startDate) ? startUtc + " " + startLocal : "", |
| 98 | + endTime: isValid(endDate) ? endUtc + " " + endLocal : "", |
80 | 99 | daysDuration,
|
81 | 100 | };
|
82 | 101 |
|
|
0 commit comments