как использовать mktime с & quot; I & quot; (летний вариант)?

Эй, я хотел закодировать скрипт, который возвращает истину, если указана дата в летнее время. Так что я нашел дату («вещи» mktime) в PHP документация. И есть список строк параметров. Там это говорит: "I (capital i) Whether or not the date is in daylight saving time", Несколько строк ниже я нашел этот пример:

echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

Вот почему я написал это в моем сценарии:

function summertime(string $date) : bool {
$pieces = explode('-', $date);
$year = (int) $pieces[0];
$month = (int) $pieces[1];
$day = (int) $pieces[2];

return date("I", mktime(0, 0, 0, $month, $day, $year));
}

echo summertime("1981-07-07");

Независимо от того, какую дату я вставил, он всегда возвращает false / 0, что когда-либо … Я не могу найти разницу или ошибку … К вашему сведению: я использую php 7.0

0

Решение

Как отмечено в комментарии Маркуса Лэра, вам, вероятно, нужно правильно установить часовой пояс. Я также рекомендую использовать DateTime учебный класс. Приведенные ниже примеры показывают, как установить определенный часовой пояс при создании новой даты:

Пример 1:

$tz = new DateTimeZone('Europe/Berlin');
$date = new DateTime('1981-07-07', $tz);
echo $date->format('I');
// outputs '1'

Пример 2:

$tz = new DateTimeZone('Europe/Berlin');
$date = new DateTime('1981-01-01', $tz);
echo $date->format('I');
// outputs '0'
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]