91³Ô¹ÏÍø

Watch CBS News

Another day of record heat Thursday in Philadelphia region. Here's the weather forecast.

Well, it's official. Philadelphia has recorded its first 90-degree day of the year, and it came VERY early. In fact, the high of 91 degrees on Wednesday marked the fourth earliest EVER for a 90-degree-plus temperature, and we're going to do it again on Thursday.

We should set a record for morning low temperature as well, hitting 67 overnight (today's record morning low is 62 degrees).  

But, as the 80s band Asia sang, it was "Heat of the Moment" as temps are about to take a major tumble next week. For your Thursday though, it's shorts, T-shirts, flip flops and a running air conditioner to stay cool.

wed-recordd.png
CBS News Philadelphia

After the warm day, a weak front will pass through overnight with nothing more than a shower.

NEXT big weather changes

Temps will stay above normal (well above normal) through Saturday with generally dry conditions. A few showers are possible on Friday, but the next significant weather change arrives Saturday night and brings showers, wind, and considerably cooler temps during the day on Sunday. 

At this point, severe weather chances are low, but with all cold fronts, we'll continue to monitor.

The cooldown takes a big hold by early next week, with Monday's highs only in the 50s and possible frost or freeze advisories by Tuesday morning.

But hey, like Elsa sang — the cold never bothered me anyway.

Here's the 7-day forecast:

z-7-day-pm.png
CBS News Philadelphia

Thursday: Record heat. High 92, low 67.

Friday: Warm, few showers. High 83, low 67.

Saturday: Nice day. High 79, low 58.

Sunday: Much cooler, wet. High 64, low 59.

Monday: Below normal temps. High 53, low 41.

Tuesday: Cold start. High 62, low 34.

Wednesday: Partly cloudy. High 73, low 51.

NEXT Weather Radars

Hourly Forecast

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });