summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManurbhav Arya2024-06-24 16:09:21 +0530
committerManurbhav Arya2024-06-24 16:09:21 +0530
commit0451fd96a5aa22410560a8e6ab77242d3ee0654a (patch)
tree2ed284d09155cfc2412890c93c67f0aee980507c
parent28cf2e54ba73c91386ef4d2166ba234214a06d92 (diff)
downloadIotJS-Astro-0451fd96a5aa22410560a8e6ab77242d3ee0654a.tar.gz
IotJS-Astro-0451fd96a5aa22410560a8e6ab77242d3ee0654a.tar.bz2
IotJS-Astro-0451fd96a5aa22410560a8e6ab77242d3ee0654a.zip
countdown timer component
-rw-r--r--src/components/CountdownTimer.astro70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/components/CountdownTimer.astro b/src/components/CountdownTimer.astro
new file mode 100644
index 0000000..4511480
--- /dev/null
+++ b/src/components/CountdownTimer.astro
@@ -0,0 +1,70 @@
+---
+
+---
+<div class="launchTime flex flex-wrap justify-center items-center bg-gray-800 py-6 px-16 rounded-lg shadow-lg mb-4">
+ <div class="time-unit flex flex-col items-center m-3">
+ <p id="days" class=" text-4xl sm:text-6xl font-bold text-white">00</p>
+ <span class="text-xl text-gray-400">Days</span>
+ </div>
+ <div class="time-unit flex flex-col items-center m-3">
+ <p id="hours" class=" text-4xl sm:text-6xl font-bold text-white">00</p>
+ <span class="text-xl text-gray-400">Hours</span>
+ </div>
+ <div class="time-unit flex flex-col items-center m-3">
+ <p id="minutes" class=" text-4xl sm:text-6xl font-bold text-white">00</p>
+ <span class="text-xl text-gray-400">Minutes</span>
+ </div>
+ <div class="time-unit flex flex-col items-center m-3">
+ <p id="seconds" class=" text-4xl sm:text-6xl font-bold text-white">00</p>
+ <span class="text-xl text-gray-400">Seconds</span>
+ </div>
+</div>
+
+<script>
+
+ import config from '../../config.json'
+ const resultDate = config.resultDate;
+
+ var x = setInterval(function(){
+
+ var targetTime = new Date(resultDate.year, resultDate.month - 1, resultDate.day, resultDate.hours, resultDate.minutes, resultDate.seconds).getTime();
+
+ var currentDate = new Date().getTime();
+
+ // Calculating the time left for the countdown
+ var timeLeft = targetTime - currentDate;
+
+ // Calculating the days, hours, minutes and seconds left
+ var days = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
+ var hours = Math.floor((timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
+ var minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60));
+ var seconds = Math.floor((timeLeft % (1000 * 60)) / 1000);
+
+ // Storing the elements in variables
+ let dayElement : HTMLElement | null = document.getElementById("days");
+ let hoursElement : HTMLElement | null = document.getElementById("hours");
+ let minutesElement : HTMLElement | null = document.getElementById("minutes");
+ let secondsElement : HTMLElement | null = document.getElementById("seconds");
+
+ // If the element is not found, return
+ if(dayElement == null || hoursElement == null || minutesElement == null || secondsElement == null){
+ return;
+ }
+
+ // setting the values in the elements
+ dayElement.innerHTML = days.toString()
+ hoursElement.innerHTML = hours.toString()
+ minutesElement.innerHTML = minutes.toString()
+ secondsElement.innerHTML = seconds.toString()
+
+ // If the count down is over, write some text
+ if(timeLeft<0){
+ clearInterval(x);
+ dayElement.innerHTML = "00";
+ hoursElement.innerHTML = "00";
+ minutesElement.innerHTML = "00";
+ secondsElement.innerHTML = "00";
+ }
+
+ },1000);
+</script> \ No newline at end of file