91³Ô¹ÏÍø

Watch CBS News

Warmer weather finally sticks around the New York area this week. Get the First Alert Forecast.

After the coldest winter in 11 years, New York City and the Tri-State Area are finally turning the corner to a consistent warm pattern this week.

New York City fell to 30 degrees on Wednesday, but this week we could hit 80! On average, in the past 30 years, the last freeze has happened on March 29. So, we are 10 days late this year. 

Temperature roller coaster

It has been a temperature roller coaster this spring; the city already recorded three days in the 80s. In fact, our first 80 this year was on March 10, making it the earliest 80 degrees on record.

10-day-highs-pm.png
CBS News New York

So far this spring, our warm spells have not lasted long, just a few days, but that is about to change this week. The forecast calls for a persistent warm pattern to last all of this week with temperatures climbing into the 70s and 80s.

The average high temperature for middle of April is only in the lower 60s; this will put us 15 to 20 degrees above normal.

Abnormally dry conditions

With warm weather, we will have to dodge a few April showers, but no major rain is forecast.

10-day-pops.png
CBS News New York

With the lack of rain, the Tri-State Area has been placed under Abnormally Dry conditions by the U.S. Drought Monitor.

Sussex, Passaic and Morris counties in New Jersey are under a Moderate Drought.

drought-monitor-now.png
CBS News New York

Year to date, New York City is more than 3 inches below normal for precipitation.

Weekend forecast

Special Weather Statement is in place on Saturday for all of New York City, Long Island and the Hudson Valley due to an elevated risk of wildfire development. With very low humidity levels and wind gusts between 25-35 mph, any fires that break out will be able to spread easily and rapidly.

fire-weather-alerts.png
CBS News New York

Brilliantly blue skies made for a simply stunning Saturday. Even with breezy conditions, it still felt wonderful.

For tonight, the clear skies will remain in place, but the winds will gradually decrease overnight. The combination of clear skies and lighter winds will make for a chilly night, with lows ranging from the 30s across the suburbs, to the low 40s in the city.

frost-freeze-alerts-1.png
CBS News New York

Some frost is possible, especially for the most outlying suburbs. Even though we are now in mid-April, frost development is still a fairly common occurrence.

A Frost Advisory in place from midnight through 9 a.m. Sunday for eastern Suffolk and northwestern Westchester, counties, along with Passaic, Bergen and Rockland counties.

For Sunday, the risk of wildfire development decreases, as an onshore flow brings up relative humidity values. With breezy conditions returning late in the day, there still is a slight risk of wildfire development, though. The other result of the onshore flow will be cooler daytime temperatures, with highs getting stuck in the 50s for most locations.

highs-tomorrow.png
CBS News New York

Bright skies in the morning will give way to more clouds by the afternoon hours. A stray shower is possible, but mainly north of the city. The cooler readings will be short-lived.

Beginning Monday, and lasting through most of this week, a summer-like weather pattern featuring highs in the 70s and 80s will take over the Eastern Seaboard. It's even possible that some record highs get set. Some inland locations may reach 90 degrees. 

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(); } }); }); }); });