@@ -26,56 +26,64 @@ const deadline = document.querySelector(".deadline");
26
26
const presentation = document . querySelector ( ".presentation" ) ;
27
27
const deadlineFormats = document . querySelectorAll ( ".deadline-format h4" ) ;
28
28
29
- let pptDate = new Date ( 2020 , 5 , 26 , 5 , 30 ) ;
29
+ // taking dates dynamically: whenever the application is opened, it sets timer to 10 days after the current date.
30
+ let tempDate = new Date ( ) ;
31
+ let tempYear = tempDate . getFullYear ( ) ;
32
+ let tempMonth = tempDate . getMonth ( ) ;
33
+ let tempDay = tempDate . getDate ( ) ;
34
+ const pptDate = new Date ( tempYear , tempMonth , tempDay + 10 , 15 , 30 , 0 ) ;
35
+
36
+ // let pptDate = new Date(2020, 5, 27, 15, 30, 0); // static date values
37
+
30
38
const year = pptDate . getFullYear ( ) ;
31
39
const day = pptDate . getDate ( ) ;
32
40
const month = months [ pptDate . getMonth ( ) ] ;
33
41
const weekday = weekdays [ pptDate . getDay ( ) ] ;
34
42
let hours = pptDate . getHours ( ) ;
35
- let text = "am" ;
36
- if ( hours > 12 ) {
43
+ if ( hours >= 12 ) {
37
44
hours -= 12 ;
38
- text = "pm" ;
39
45
}
40
- const minutes = pptDate . getMinutes ( ) ;
41
- presentation . textContent = `PPT begins on ${ weekday } ${ day } ${ month } ${ year } , ${ hours } :${ minutes } ${ text } ` ;
46
+ let minutes = pptDate . getMinutes ( ) ;
47
+ if ( hours < 10 ) {
48
+ hours = `0${ hours } ` ;
49
+ }
50
+ if ( minutes < 10 ) {
51
+ minutes = `0${ minutes } ` ;
52
+ }
53
+ presentation . textContent = `PPT begins on ${ weekday } ${ day } ${ month } ${ year } , ${ hours } :${ minutes } hrs.` ;
42
54
43
- const pptTime = pptDate . getTime ( ) ;
44
- getRemaindingTime = ( ) => {
45
- const currentTime = new Date ( ) . getTime ( ) ;
55
+ const pptTime = pptDate . getTime ( ) ; // returns miliseconds
46
56
47
- const time = pptTime - currentTime ; // returns miliseconds
57
+ let countdown = setInterval ( getRemainingTime = ( ) => {
58
+ const currentTime = new Date ( ) . getTime ( ) ;
59
+ const time = pptTime - currentTime ;
48
60
61
+ // convert miliseconds to required values
49
62
const oneDay = 24 * 60 * 60 * 1000 ;
50
63
const oneHour = 60 * 60 * 1000 ;
51
64
const oneMinute = 60 * 1000 ;
52
-
53
65
const daysLeft = Math . floor ( time / oneDay ) ;
54
66
const hoursLeft = Math . floor ( ( time % oneDay ) / oneHour ) ;
55
67
const minsLeft = Math . floor ( ( time % oneHour ) / oneMinute ) ;
56
68
const secsLeft = Math . floor ( ( time % oneMinute ) / 1000 ) ;
57
69
58
70
const values = [ daysLeft , hoursLeft , minsLeft , secsLeft ] ;
59
-
60
- deadlineFormats . forEach ( ( text , index ) => {
61
- text . innerHTML = format ( values [ index ] ) ;
62
- } )
63
- function format ( item ) {
71
+ format = ( item ) => {
64
72
if ( item < 10 ) {
65
73
return ( item = `0${ item } ` ) ;
66
74
}
67
75
return item ;
68
76
}
69
-
77
+ deadlineFormats . forEach ( ( text , index ) => {
78
+ text . innerHTML = format ( values [ index ] ) ;
79
+ } )
70
80
if ( time < 0 ) {
71
81
clearInterval ( countdown ) ;
72
- deadline . innerHTML = `<h4 class="expired">sorry, this giveaway has expired !</h4>` ;
82
+ deadline . innerHTML = `<h4 class="expired">Presentation already given !</h4>` ;
73
83
}
74
- }
75
- let countdown = setInterval ( getRemaindingTime , 1000 ) ;
76
- getRemaindingTime ( ) ;
84
+ } , 1000 ) ;
77
85
78
86
/* Learnings:
79
87
1. date() and its methods
80
- 2. SetInterval() method
88
+ 2. SetInterval() & clearInterval() method
81
89
*/
0 commit comments