Skip to content

Commit f49fd39

Browse files
authored
Merge pull request #9 from excitedleigh/local-times
2 parents 8c64155 + 5bdc0f6 commit f49fd39

File tree

4 files changed

+50
-5
lines changed

4 files changed

+50
-5
lines changed

src/Components/App/typography.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300|Roboto+Mono");
1+
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400|Roboto+Mono");
22
body {
33
font-family: var(--font-name--paragraph);
44
}

src/Components/Home/Sections/Schedule.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default class Schedule extends React.Component {
1010
<section id="schedule" className="schedule">
1111
<Container size={Sizes.large}>
1212
<Container size={Sizes.small}>
13-
<h1>Schedule (time is UTC!)</h1>
13+
<h1>Schedule</h1>
1414
</Container>
1515
<ul>
1616
{SCHEDULE.map((schedule, index) => (

src/Components/ScheduleItem/index.css

+22-2
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@
127127
top: -2rem;
128128
left: calc(50% - 6rem);
129129
transform: translate(-100%, -50%);
130+
display: flex;
131+
flex-direction: column;
132+
align-items: flex-end;
133+
font-size: 0.75em;
134+
font-weight: 400;
130135

131136
@media (--mobile) {
132137
top: -3.6rem;
@@ -136,11 +141,21 @@
136141
@media (--tablet) {
137142
top: 50%;
138143
left: auto;
139-
right: 5rem;
144+
right: 6rem;
140145
transform: translate(50%, -50%);
141146
}
142147
}
143148

149+
&--time-row {
150+
display: flex;
151+
align-items: baseline;
152+
}
153+
154+
&--time-tz {
155+
font-size: 0.75em;
156+
margin: 0 0.75ch;
157+
}
158+
144159
&:nth-child(2n) {
145160
@media (--tablet) {
146161
.schedule-item--image {
@@ -154,9 +169,14 @@
154169
}
155170

156171
.schedule-item--time {
157-
left: 5rem;
172+
left: 6rem;
158173
right: auto;
159174
transform: translate(-50%, -50%);
175+
align-items: flex-start;
176+
}
177+
178+
.schedule-item--time-row {
179+
flex-direction: row-reverse;
160180
}
161181
}
162182
}

src/Components/ScheduleItem/index.tsx

+26-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ export interface ScheduleItemProps {
99
speaker: Speaker | null;
1010
}
1111

12+
const UTC_FMT = new Intl.DateTimeFormat(
13+
"en-GB-u-hc-h23",
14+
{ hour: "2-digit", minute: "2-digit", timeZone: "UTC" },
15+
);
16+
const LOCAL_FMT = new Intl.DateTimeFormat(
17+
"en-GB-u-hc-h23",
18+
{ hour: "2-digit", minute: "2-digit" },
19+
);
20+
1221
export default class ScheduleItem extends React.Component<
1322
ScheduleItemProps,
1423
{}
@@ -64,6 +73,9 @@ export default class ScheduleItem extends React.Component<
6473

6574
const SpeakerNameTag = isTalk && speaker!.social ? "a" : "p";
6675

76+
const [hourString, minString] = schedule.time.split(':', 2)
77+
const time = new Date(Date.UTC(2020, 3, 25, parseInt(hourString), parseInt(minString)))
78+
6779
return (
6880
<li className={scheduleItemClasses}>
6981
{isTalk && (
@@ -83,7 +95,20 @@ export default class ScheduleItem extends React.Component<
8395
{speaker!.name}
8496
</SpeakerNameTag>
8597
)}
86-
<span className="schedule-item--time">{schedule.time}</span>
98+
<span className="schedule-item--time">
99+
<span className="schedule-item--time-row">
100+
<span className="schedule-item--time-tz">UTC</span>
101+
<span className="schedule-item--time-time">
102+
{UTC_FMT.format(time)}
103+
</span>
104+
</span>
105+
<span className="schedule-item--time-row">
106+
<span className="schedule-item--time-tz">Local</span>
107+
<span className="schedule-item--time-time">
108+
{LOCAL_FMT.format(time)}
109+
</span>
110+
</span>
111+
</span>
87112
</div>
88113
</li>
89114
);

0 commit comments

Comments
 (0)