@@ -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+
1221export 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