Я пытаюсь сделать простой скрипт.По сути, все, что он будет делать, - это сказать мне, прошла ли поставленная мною дата ($dateToCheck
) или еще не наступила в будущем.Программа, кажется, работает и все, но проблема в том, что даты / время не конвертируются в сиднейское время.Я хочу, чтобы все даты были в Сиднее.Таким образом, скрипт работает, если между $dateToCheck
и текущим временем существует огромный промежуток времени.Однако, если текущая дата и $dateToCheck
находятся на расстоянии всего лишь нескольких часов, он перестает давать правильный ответ.Следовательно, проблема с часовыми поясами.
<?php
// All dates and time are in Sydney time
date_default_timezone_set('Australia/Sydney');
$currTime = time();
$dateToCheck = "2019-06-08T18:00:00"; // 10th June 2018 at 7:00pm
$answer = has_date_past($currTime, $dateToCheck);
echo $answer;
// If the date has passed the current time, return true
function has_date_past($currTime, $date) {
$checkDate = strtotime($date);
echo $checkDate . "<br>";
echo $currTime . "<br>";
if ($currTime <= $checkDate) {
return 1;
} else {
return 0;
}
}
?>