25/12/2023

This commit is contained in:
2023-12-25 09:29:34 +07:00
parent dac87c3a2b
commit 802682da2e
7 changed files with 689 additions and 180 deletions

View File

@@ -75,64 +75,6 @@ function xayhtml(product: ProductInfo) {
`;
}
function formatPrice(price: number) {
var b = price.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
var len = b.length;
b = b.substring(0, len - 3);
return b;
}
function countDown(iid: string, endTime: number): void {
const updateCountdown = () => {
const now: number = Date.now();
const distance: number = endTime - now;
if (distance > 0) {
const [days, hours, minutes, seconds] = getTimeComponents(distance);
displayCountdown(iid, days, hours, minutes, seconds);
} else {
clearInterval(timer);
}
};
// Initial update to avoid delay
updateCountdown();
const timer: NodeJS.Timeout = setInterval(updateCountdown, 1000);
}
function getTimeComponents(distance: number): [number, number, number, number] {
const days: number = Math.floor(distance / (1000 * 60 * 60 * 24));
const hours: number = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes: number = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
const seconds: number = Math.floor((distance % (1000 * 60)) / 1000);
return [days, hours, minutes, seconds];
}
function displayCountdown(iid: string, days: number, hours: number, minutes: number, seconds: number): void {
const element: HTMLElement | null = document.querySelector(`.${iid}`);
if (element) {
if (days > 0) {
element.innerHTML = `
<div class='item-time'><b>${formatTimeComponent(days)}</b></div>
<div class='item-time'><b>${formatTimeComponent(hours)}</b></div>
<div class='item-time'><b>${formatTimeComponent(minutes)}</b></div>
<div class='item-time'><b>${formatTimeComponent(seconds)}</b></div>`;
} else {
element.innerHTML = `
<div class='item-time'><b>${formatTimeComponent(hours)}</b></div>
<div class='item-time'><b>${formatTimeComponent(minutes)}</b></div>
<div class='item-time'><b>${formatTimeComponent(seconds)}</b></div>`;
}
}
}
function formatTimeComponent(component: number): string {
return component <= 9 ? '0' + component : component.toString();
}
hienthi_sp();