PROMPT 2 — Script dată automată + Countdown
Am un landing page HTML de webinar (fișierul e în proiect).
Adaugă scriptul de dată automată și countdown fără să modifici designul.
Reguli:
- Webinarul are loc în fiecare MARȚI la ora 19:00 (ora României), reluarea MIERCURI la 19:00
- Data se calculează dinamic la fiecare vizită — niciodată hardcodată
- Dacă azi e marți dar ora 19:00 a trecut, sare la marțea următoare
Caută în fișier elementele de mai jos și populează-le. Dacă un element nu există, sari peste el.
| ID / selector | Ce afișează |
|---------------------|----------------------------------------------------------|
| #hero-live-date | ex: „Marți, 24 iunie", ora 19:00 (ora României) |
| #hero-reluare-date | ex: „Reluare: Miercuri, 25 iunie · 19:00" |
| #live-date | varianta scurtă cu emoji 📅 și dată bold |
| #reluare-date | varianta scurtă cu emoji 📅 și dată bold |
| #micro-live | linie compactă: dată · 19:00 · 90 minute · sesiune live |
| #final-cta-date | dată bold în secțiunea finală de CTA |
| .eyebrow.live | text uppercase: LIVE · DOAR 150 LOCURI · DATA · 19:00 |
| cd-d sau cd-days | countdown zile (detectează automat ce prefix există) |
| cd-h sau cd-hours | countdown ore |
| cd-m sau cd-minutes | countdown minute |
| cd-s sau cd-seconds | countdown secunde |
Scriptul de adăugat (adaptează ID-urile countdown la ce există în fișier):
<script>
(function(){
var MONTHS_RO = ['ianuarie','februarie','martie','aprilie','mai','iunie','iulie','august','septembrie','octombrie','noiembrie','decembrie'];
var DAYS_RO = ['Duminică','Luni','Marți','Miercuri','Joi','Vineri','Sâmbătă'];
function getNextTuesday() {
var now = new Date();
var next = new Date(now);
next.setHours(19, 0, 0, 0);
var day = now.getDay();
var daysUntil = (2 - day + 7) % 7;
if (daysUntil === 0 && now >= next) daysUntil = 7;
next.setDate(next.getDate() + daysUntil);
return next;
}
function getNextWednesdayAfter(d) {
var r = new Date(d);
r.setDate(r.getDate() + 1);
return r;
}
var liveDate = getNextTuesday();
var reluareDate = getNextWednesdayAfter(liveDate);
function fmtShort(d) { return DAYS_RO[d.getDay()] + ', ' + d.getDate() + ' ' + MONTHS_RO[d.getMonth()]; }
function fmtUpper(d) { return DAYS_RO[d.getDay()].toUpperCase() + ', ' + d.getDate() + ' ' + MONTHS_RO[d.getMonth()].toUpperCase(); }
var eyebrowEl = document.querySelector('.eyebrow.live');
if (eyebrowEl) eyebrowEl.textContent = 'LIVE · DOAR 150 LOCURI · ' + fmtUpper(liveDate) + ' · 19:00 (ora României)';
var heroLiveEl = document.getElementById('hero-live-date');
if (heroLiveEl) heroLiveEl.innerHTML = '<strong>' + fmtShort(liveDate) + '</strong>, ora 19:00 (ora României)';
var heroReluareEl = document.getElementById('hero-reluare-date');
if (heroReluareEl) heroReluareEl.innerHTML = '<strong>Reluare</strong>: ' + fmtShort(reluareDate) + ' · 19:00';
var microEl = document.getElementById('micro-live');
if (microEl) microEl.textContent = fmtShort(liveDate) + ' · 19:00 (ora României) · 90 minute · sesiune live';
var liveDateEl = document.getElementById('live-date');
if (liveDateEl) liveDateEl.innerHTML = '📅 <strong>' + fmtShort(liveDate) + '</strong> · 19:00';
var reluareDateEl = document.getElementById('reluare-date');
if (reluareDateEl) reluareDateEl.innerHTML = '📅 <strong>' + fmtShort(reluareDate) + '</strong> · 19:00';
var finalCtaEl = document.getElementById('final-cta-date');
if (finalCtaEl) finalCtaEl.innerHTML = '<strong>' + fmtShort(liveDate) + '</strong>, ora 19:00';
var target = liveDate.getTime();
var elD = document.getElementById('cd-d') || document.getElementById('cd-days');
var elH = document.getElementById('cd-h') || document.getElementById('cd-hours');
var elM = document.getElementById('cd-m') || document.getElementById('cd-minutes');
var elS = document.getElementById('cd-s') || document.getElementById('cd-seconds');
function pad(n) { return String(Math.max(0, n)).padStart(2, '0'); }
function tick() {
var diff = target - Date.now();
if (diff <= 0) diff = 0;
var s = Math.floor(diff / 1000);
var d = Math.floor(s / 86400); s -= d * 86400;
var h = Math.floor(s / 3600); s -= h * 3600;
var m = Math.floor(s / 60); s -= m * 60;
if (elD) elD.textContent = pad(d);
if (elH) elH.textContent = pad(h);
if (elM) elM.textContent = pad(m);
if (elS) elS.textContent = pad(s);
}
tick();
setInterval(tick, 1000);
})();
</script>