<?php
    $tz 
= new DateTimeZone("Europe/Berlin");
    
$trs $tz->getTransitions(
        
strtotime('1938-01-01 UTC'), strtotime('1948-01-01 UTC')
    );

    foreach (
$trs as $tr) {
        
printf("%20s %7d %d %s\n",
            
$tr['time'], $tr['offset'], $tr['isdst'], $tr['abbr']);
    }

    
$loc $tz->getLocation();
    echo 
'Info: 'join' - '$loc ), "\n";
Output
1938-01-01T00:00:00+00:00 3600 0 CET 1940-04-01T01:00:00+00:00 7200 1 CEST 1942-11-02T01:00:00+00:00 3600 0 CET 1943-03-29T01:00:00+00:00 7200 1 CEST 1943-10-04T01:00:00+00:00 3600 0 CET 1944-04-03T01:00:00+00:00 7200 1 CEST 1944-10-02T01:00:00+00:00 3600 0 CET 1945-04-02T01:00:00+00:00 7200 1 CEST 1945-05-24T00:00:00+00:00 10800 1 CEMT 1945-09-24T00:00:00+00:00 7200 1 CEST 1945-11-18T01:00:00+00:00 3600 0 CET 1946-04-14T01:00:00+00:00 7200 1 CEST 1946-10-07T01:00:00+00:00 3600 0 CET 1947-04-06T02:00:00+00:00 7200 1 CEST 1947-05-11T01:00:00+00:00 10800 1 CEMT 1947-06-29T00:00:00+00:00 7200 1 CEST 1947-10-05T01:00:00+00:00 3600 0 CET Info: DE - 52.5 - 13.36666 - most of Germany