Я просматривал другие решения для SO, и ни одно из них, похоже, не решает проблему часового пояса / dst в следующем отношении.
Я звоню в API прогнозирования приливов NOAA и API-интерфейс Национальной метеорологической службы NOAA , для передачи которого требуется диапазон времени.Для каждого местоположения в моей базе данных у меня есть часовой пояс как смещение UTC и наблюдается ли летнее время (1 или 0).Я пытаюсь отформатировать некоторые даты (сегодня и завтра), чтобы они соответствовали LST (местному стандартному времени) в его собственном часовом поясе, чтобы я мог перейти к этим API.
У меня проблемы с выяснениемкак узнать, находится ли дата, например, сегодня, в диапазоне летнего времени или нет.
Вот что у меня есть:
// Get name of timezone for tide station
// NOTE: $locationdata->timezone is something like "-5"
$tz_name = timezone_name_from_abbr("", $locationdata->timezone * 3600, false);
$dtz = new DateTimeZone($tz_name);
// Create time range
$start_time = new DateTime('', $dtz);
$end_time = new DateTime('', $dtz);
$end_time = $end_time->modify('+1 day');
// Modify time to match local timezone
$start_time->setTimezone($dtz);
$end_time->setTimezone($dtz);
// Adjust for daylight savings time
if( $locationdata->dst == '1' )
{
// DST is observed in this area.
// ** HOW DO I KNOW IF TODAY IS CURRENTLY DST OR NOT? **
}
// Make call to API using modified time range
...
Как мне поступить?этот?Спасибо.