could someone please check this works for me its in UTC and uk
JavaScript:
// ----------------- UK CLOCK (device-proof) -----------------
function getUKNow() {
const now = new Date(); // UTC baseline
const y = now.getUTCFullYear();
// BST: last Sunday in March -> last Sunday in October (UTC math)
const bstStart = new Date(Date.UTC(y, 2, 31)); // Mar 31 UTC
bstStart.setUTCDate(31 - bstStart.getUTCDay()); // last Sunday Mar
const bstEnd = new Date(Date.UTC(y, 9, 31)); // Oct 31 UTC
bstEnd.setUTCDate(31 - bstEnd.getUTCDay()); // last Sunday Oct
const inBST = now >= bstStart && now < bstEnd;
// UK time = UTC + (BST ? 1h : 0h)
return new Date(now.getTime() + (inBST ? 1 : 0) * 3600 * 1000);
}
// ----------------- SCHEDULE (DH[1..7][0..23]) -----------------
const DH = Array.from({ length: 8 }, () => Array(24).fill(""));
// MONDAY (1)
DH[1][12] = "12pm – 2pm<br>James-Wizard Of Rock";
DH[1][14] = "2pm – 4pm<br>BabyJane";
DH[1][15] = "3pm – 5pm<br>James Stephen";
DH[1][17] = "5pm – 7pm<br>Lewis";
DH[1][19] = "7pm – 10pm<br>DJ Dezzy – Mix Set";
DH[1][22] = "10pm – 12am<br>DJ Jayden Mac – Grime";
// TUESDAY (2)
DH[2][1] = "1am – 2am<br>James - Wizard Of Rock";
DH[2][3] = "3am – 6am<br>Dani - DJ Queen Dani";
DH[2][6] = "6am – 8am<br>Autodj";
DH[2][10] = "10am – 12pm<br>HothotDJ";
DH[2][15] = "3pm – 5pm<br>James Stephen";
DH[2][20] = "8pm – 10pm<br>DJ Lewis";
DH[2][21] = "9pm – 10pm<br>Auto";
DH[2][22] = "10pm – 12am<br>Autodj";
// WEDNESDAY (3)
DH[3][0] = "12am – 2am<br>Dani - DJ Queen Dani";
DH[3][15] = "3pm – 5pm<br>James Stephen";
DH[3][18] = "6pm – 7pm<br>Auto";
DH[3][19] = "7pm – 8pm<br>Auto";
DH[3][20] = "8pm – 10pm<br>Steve DJ Smith";
DH[3][22] = "10pm – 12am<br>Reece";
// THURSDAY (4)
DH[4][0] = "12am – 4am<br>Auto";
DH[4][8] = "8am – 10am<br>Coll";
DH[4][10] = "10am – 12pm<br>Gordan";
DH[4][12] = "12pm – 3pm<br>Christina";
DH[4][15] = "3pm – 4pm<br>James Stephen";
DH[4][19] = "7pm – 8pm<br>Echofalls (DJ Strawbs)";
DH[4][20] = "8pm – 10pm<br>Auto";
DH[4][22] = "10pm – 12am<br>Auto";
// FRIDAY (5)
DH[5][0] = "12am – 4am<br>Steve G";
DH[5][10] = "10am – 12pm<br>Vish";
DH[5][15] = "3pm – 5pm<br>James Stephen";
DH[5][16] = "4pm – 8pm<br>Steven D";
DH[5][20] = "8pm – 10pm<br>Auto";
DH[5][22] = "10pm – 11pm<br>Rebecca - DJ Mix&Match";
// SATURDAY (6)
DH[6][0] = "12am – 2am<br>Auto";
DH[6][2] = "2am – 4am<br>DJ AJ";
DH[6][6] = "6am – 10am<br>Cam";
DH[6][10] = "10am – 12pm<br>DJ Nero";
DH[6][16] = "4pm – 6pm<br>The Byrdman";
DH[6][18] = "6pm – 8pm<br>DJ LiL Devil";
DH[6][19] = "7pm – 8pm<br>Sonic-Recorded";
DH[6][20] = "8pm – 9pm<br>Daniel";
// SUNDAY (7)
DH[7][8] = "8am – 10am<br>Auto";
DH[7][11] = "11am – 12pm<br>HotShot - 80's 90's";
DH[7][13] = "1pm – 3pm<br>JK";
DH[7][17] = "5pm – 7pm<br>DJ Lewis";
DH[7][19] = "7pm – 8pm<br>DJ Eddie";
DH[7][20] = "8pm – 9pm<br>BIG BOSS DJ Echofalls";
DH[7][21] = "9pm – 12am<br>Popped Radio";
// ----------------- NOW ON -----------------
function NowON() {
const ukNow = getUKNow();
const day = ukNow.getUTCDay() === 0 ? 7 : ukNow.getUTCDay(); // 1..7 (Sun=7)
const hour = ukNow.getUTCHours();
const pill = document.getElementById("live-pill");
const t = document.getElementById("np-title");
const a = document.getElementById("np-artist");
if (!pill || !t || !a) return;
const show = DH[day][hour];
if (show) {
pill.textContent = "ON AIR";
pill.classList.add("onair");
const [slot, dj] = show.split("<br>");
t.textContent = slot;
a.textContent = dj;
} else {
pill.textContent = "OFF AIR";
pill.classList.remove("onair");
t.textContent = "No current broadcast";
a.textContent = "Schedule resumes soon";
}
// Debug line (remove later)
console.log("UK Day:", day, "UK Hour:", hour, "Show:", show || "(none)");
}
document.addEventListener("DOMContentLoaded", () => {
NowON();
setInterval(NowON, 60_000);
});