Follow
Follow
Follow
Follow
Follow
Next live in
Loading...
Search for:
HOME
About Us
Keith Funk
Radio Show
Garden Wise Show
The Team
Youtube
TikTok
Resources
Garden Wear
Businesses
Clubs | Societies | Orgs
Advertising
Coupons
Events
Articles
Newsletter
Featured
Plant Profiles
Garden Myths
Seasonal Wisdom
Wildlife in the Garden
Landscape
Monthly Tips
Follow
Follow
Follow
Follow
Follow
HOME
About Us
Keith Funk
Radio Show
Garden Wise Show
The Team
Youtube
TikTok
Resources
Garden Wear
Businesses
Clubs | Societies | Orgs
Advertising
Coupons
Events
Articles
Newsletter
Featured
Plant Profiles
Garden Myths
Seasonal Wisdom
Wildlife in the Garden
Landscape
Monthly Tips
Just a Test for CSS Stuff
Edit this
text,
resize this container,
test the text grow
CSS feature.
Search for:
From The Garden Newsletter
Get show updates, garden tips, and special offers for Garden Wise Guy listeners.
Instagram
This field is for validation purposes and should be left unchanged.
Name
(Required)
First
Last
Email
(Required)
Enter Email
Confirm Email
Privacy
(Required)
I agree with the storage and handling of my data by this website. -
Privacy Policy
*
Categories
Featured
Garden Calendar
Garden Myths and Legends
Grass
House Plants
Landscape
Monthly Tips
Newsletter
Plant Personality Profiles
Seasonal Wisdom
Shrubs
Wildlife in the Garden
Recent Posts
July – The Garden Wise Journal – Newsletter
Plant Profile: Crocosmia ‘Lucifer’
July Garden Myths
The Garden Wise Guy’s 12 July Garden Tips
Native Plants, Reimagined
X
(function () { const statusEl = document.getElementById("liveStatus"); const timerEl = document.getElementById("countdownTimer"); const widgetEl = document.getElementById("liveWidget"); if (!statusEl || !timerEl || !widgetEl) return; const MST_OFFSET_MINUTES = -7 * 60; function getMstDateParts(date = new Date()) { const utcTime = date.getTime() + (date.getTimezoneOffset() * 60000); const mstTime = new Date(utcTime + (MST_OFFSET_MINUTES * 60000)); return { year: mstTime.getUTCFullYear(), month: mstTime.getUTCMonth(), day: mstTime.getUTCDate(), weekday: mstTime.getUTCDay(), hour: mstTime.getUTCHours(), minute: mstTime.getUTCMinutes(), second: mstTime.getUTCSeconds() }; } function createUtcFromMst(year, month, day, hour = 0, minute = 0, second = 0) { return new Date(Date.UTC(year, month, day, hour + 7, minute, second)); } function getNextSaturdayStartUtc(now = new Date()) { const mst = getMstDateParts(now); const todayStartUtc = createUtcFromMst(mst.year, mst.month, mst.day, 0, 0, 0); const daysUntilSaturday = (6 - mst.weekday + 7) % 7; let targetDayUtc = new Date(todayStartUtc.getTime() + (daysUntilSaturday * 86400000)); let targetStartUtc = createUtcFromMst( targetDayUtc.getUTCFullYear(), targetDayUtc.getUTCMonth(), targetDayUtc.getUTCDate(), 7, 0, 0 ); const isSaturday = mst.weekday === 6; const isAfterLiveWindow = isSaturday && mst.hour >= 9; const isBeforeStartToday = isSaturday && mst.hour < 7; if (daysUntilSaturday === 0 && !isBeforeStartToday && isAfterLiveWindow) { targetDayUtc = new Date(targetDayUtc.getTime() + (7 * 86400000)); targetStartUtc = createUtcFromMst( targetDayUtc.getUTCFullYear(), targetDayUtc.getUTCMonth(), targetDayUtc.getUTCDate(), 7, 0, 0 ); } return targetStartUtc; } function isLiveWindow(now = new Date()) { const mst = getMstDateParts(now); return mst.weekday === 6 && mst.hour >= 7 && mst.hour < 9; } function formatCountdown(ms) { const totalSeconds = Math.max(0, Math.floor(ms / 1000)); const days = Math.floor(totalSeconds / 86400); const hours = Math.floor((totalSeconds % 86400) / 3600); const minutes = Math.floor((totalSeconds % 3600) / 60); if (days > 0) { return `${days}d ${String(hours).padStart(2, "0")}h ${String(minutes).padStart(2, "0")}m`; } return `${String(hours).padStart(2, "0")}h ${String(minutes).padStart(2, "0")}m`; } function updateCountdown() { const now = new Date(); if (isLiveWindow(now)) { statusEl.textContent = ""; timerEl.textContent = "LIVE NOW"; widgetEl.classList.add("live-active"); return; } widgetEl.classList.remove("live-active"); statusEl.textContent = "Next live in"; const nextStartUtc = getNextSaturdayStartUtc(now); const diff = nextStartUtc.getTime() - now.getTime(); timerEl.textContent = formatCountdown(diff); } updateCountdown(); setInterval(updateCountdown, 1000); })();