JS On-AIR Script

Joined
Jun 14, 2018
Messages
114
Reaction score
1
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);
});
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,333
Messages
2,571,383
Members
48,787
Latest member
hypercubes

Latest Threads

Top