<?php
date_default_timezone_set
("America/New_york");
$tz = new DateTimeZone(isset($_GET['zone']) ? $_GET['zone'] : "America/New_york");

foreach (
timezone_transitions_get($tz) as $tr)
    if (
$tr['ts'] > time())
        break;

$d = new DateTime"@{$tr['ts']});
printf("The timezone %s switches to %s on %s.<br/>The new GMT offset will be: %d (%s)\n",
    
$tz->getName(), $tr['isdst'] ? "DST" "standard time",
    
$d->format('d M Y @ H:i T'), $tr['offset'], $tr['abbr']
);
?>
<form><select name='zone'>
<?php foreach(DateTimeZone::listIdentifiers() as $id) {
    echo 
"<option value='$id'>$id</option>\n"; } ?>
</select><input type="submit" value="go"/></form>
Output
The timezone America/New_york switches to DST on 09 Mar 2025 @ 07:00 GMT+0000.
The new GMT offset will be: -14400 (EDT)