forked from lafeo/site2019
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcountdown.js
65 lines (52 loc) · 2.31 KB
/
countdown.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
61
62
63
64
65
const $ = elem => document.querySelector(elem);
const countdown = function(_config) {
const tarDate = $(_config.target).getAttribute('data-date').split('-');
const day = parseInt(tarDate[0]);
const month = parseInt(tarDate[1]);
const year = parseInt(tarDate[2]);
let tarTime = $(_config.target).getAttribute('data-time');
let tarhour, tarmin;
if (tarTime != null) {
tarTime = tarTime.split(':');
tarhour = parseInt(tarTime[0]);
tarmin = parseInt(tarTime[1]);
}
let months = [31, new Date().getFullYear() % 4 == 0 ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let dateNow = new Date();
let dayNow = dateNow.getDate();
let monthNow = dateNow.getMonth() + 1;
let yearNow = dateNow.getFullYear();
let hourNow = dateNow.getHours();
let minNow = dateNow.getMinutes();
let count_day = 0, count_hour = 0, count_min = 0;
let count_day_isSet = false;
let isOver = false;
// Set the date we're counting down to
const countDownDate = new Date(year, month-1, day, tarhour, tarmin, 0, 0).getTime();
$(_config.target+' .day .word').innerHTML = _config.dayWord;
$(_config.target+' .hour .word').innerHTML = _config.hourWord;
$(_config.target+' .min .word').innerHTML = _config.minWord;
$(_config.target+' .sec .word').innerHTML = _config.secWord;
const updateTime = () => {
// Get todays date and time
const now = new Date().getTime();
// Find the distance between now an the count down date
const distance = countDownDate - now;
// Time calculations for days, hours, minutes and seconds
const days = Math.floor(distance / (1000 * 60 * 60 * 24));
const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((distance % (1000 * 60)) / 1000);
requestAnimationFrame(updateTime);
$(_config.target+' .day .num').innerHTML = addZero(days);
$(_config.target+' .hour .num').innerHTML = addZero(hours);
$(_config.target+' .min .num').innerHTML = addZero(minutes);
$(_config.target+' .sec .num').innerHTML = addZero(seconds);
// If the count down is over, write some text
if (distance < 0) {
$(".countdown").innerHTML = "EXPIRED";
}
}
updateTime();
}
const addZero = (x) => (x < 10 && x >= 0) ? "0"+x : x;