-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample-clock.js
60 lines (45 loc) · 1.59 KB
/
example-clock.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// (c) 2018-present, The Awesome Engineering Company, https://awesomeneg.com
import {ZephComponents,html,css,onCreate} from "./Zeph.js";
import {ClockService} from "./ClockService.js";
const DOW = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
const MONTH = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
ZephComponents.define("example-clock",()=>{
html("./example-clock.html");
css("./example-clock.css");
onCreate((element,content)=>{
let hr = content.querySelector("div.time > .hour");
let mi = content.querySelector("div.time > .minute");
let me = content.querySelector("div.time > .ampm");
let dw = content.querySelector("div.date > .dow");
let mo = content.querySelector("div.date > .month");
let dy = content.querySelector("div.date > .day");
let yr = content.querySelector("div.date > .year");
let setTime = (time)=>{
time = new Date(time);
let hour = time.getHours()%12;
if (hour===0) hour = 12;
hr.textContent = (""+hour).padStart(2,"0");
let minute = time.getMinutes();
mi.textContent = (""+minute).padStart(2,"0");
let ampm = time.getHour<12 ? "am" : "pm";
me.textContent = ampm;
};
let setDate = (time)=>{
time = new Date(time);
let dow = DOW[time.getDay()];
dw.textContent = dow;
let month = MONTH[time.getMonth()];
mo.textContent = month;
let day = time.getDate();
dy.textContent = day;
let year = time.getFullYear();
yr.textContent = year;
};
ClockService.on("updated",(event,time)=>{
setTime(time);
setDate(time);
});
setTime(ClockService.time);
setDate(ClockService.time);
});
});