Strtotime PHP jest nieprawidłowe (czasami)?
Mam ten problem z strtotime w moim kodzie PHP, że czasami jest on błędny (tylko dla niektórych stref czasowych) i jest poprawny dla innych !!
Nie mogę się tym zająć.
Ustawiłem<?php date_default_timezone_set('GMT'); ?>
na górze mojej strony, ale to nie pomaga!
zasadniczo to, co robi, to dodanie lub odjęcieoffset/3600
wartość do ustawionego czasu w$time1 = strtotime('00:00');
w zależności od tego, czy i kiedy, jeśli warunki.
wartość offset / 3660 to różnica czasu między dwoma strefami czasowymi!
kod poniżej działa dla niektórych lokalizacji i nie działa dla innych! zasadniczo doda dodatkowe 1-2 godziny lub zdejmie / odejmie dodatkowe 1-2 godziny (nie cały czas).
tj. różnica czasu między Abidżanem a Londynem wynosi -1. czas (wartość), który należy wyświetlić, to 23:00 jako 00:00 - 01:00 = 23:00. ale wyświetlana jest wartość 00:00.
Jak już wspomniałem, działa w niektórych strefach czasowych. tj. dla różnicy czasu między Nowym Jorkiem a Londynem, która wynosi -5, kod działa i pokazuje 19:00 jako 00:00 - 05:00 = 19:00
czy ktoś mógłby rzucić na to światło?
Oto kod, o którym mowa:
<?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}";
?>