PHP strtotime не так (несколько раз)?
У меня есть проблема с strtotime в моем PHP-коде, что иногда это неправильно (только для некоторых часовых поясов), и это правильно для других !!
Я не могу разобраться с этим.
Я установил<?php date_default_timezone_set('GMT'); ?>
в верхней части моей страницы, но это не помогает!
в основном это то, что он будет добавлять или вычитатьoffset/3600
значение установленного времени в$time1 = strtotime('00:00');
в зависимости от условий if и else if.
значение смещения / 3660 - это разница во времени между двумя часовыми поясами!
код ниже работает для некоторых мест и не для других! в основном это добавляет дополнительные 1-2 часа или снимает / вычитает дополнительные 1-2 часа несколько раз (не все время).
то есть разница во времени между Абиджаном и Лондоном равна -1. время (значение), которое должно быть показано, равно 23:00 как 00:00 - 01:00 = 23:00. но значение отображается 00:00.
Однако, как я уже говорил, это работает для некоторых часовых поясов. то есть для разницы во времени между Нью-Йорком и Лондоном, которая составляет -5, код работает, и он показывает 19:00 как 00:00 - 05:00 = 19:00
Может кто-нибудь, пожалуйста, пролить свет на это?
вот код, о котором идет речь:
<?php
$time1 = strtotime('00:00');
if (0 > $offset)
{
// For negative offset (hours behind)
$hour_dif = date('H:i', strtotime($time1 -$offset/3600));
$time1 = "{$hour_dif}";
}
elseif (0 < $offset)
{
// For positive offset (hours ahead)
$hour_dif = date('H:i', strtotime($time1 +$offset/3600));
$time1 = "{$hour_dif}";
}
else
{
// For offsets in the same timezone.
$time1 = "in the same timezone";
}
echo "{$time1}";
?>