Я сейчас использую это:
$rawsql = "SELECT
*
FROM
_erc_foffices n
INNER JOIN
_erc_openings o ON n.id = o.branch_id AND o.dotw = DAYOFWEEK(CURRENT_DATE())
INNER JOIN
_erc_openings_times t ON o.id = t.opening_id
WHERE
(
UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) BETWEEN
UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.open))
AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.close))
)
AND
(
n.id = %d
)
;";
для запроса базы данных и возврата всех деталей из посольства, если оно открыто в данный момент.
Теперь, вместо CURRENT_TIMESTAMP()
, мне нужно выяснить, находится ли время, хранящееся в переменной $current_local_time
, между двумя значениями базы данных. Расписания должны храниться по местному времени, а не по лондонскому, поэтому я пытаюсь их преобразовать.
Я попытался заменить
WHERE
(
UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) BETWEEN
UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.open))
AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.close))
)
с
WHERE
(
UNIX_TIMESTAMP($current_local_time) BETWEEN
UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.open))
AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.close))
)
но я просто получаю сообщения об ошибках. Может кто-нибудь сказать, пожалуйста, как бы я это сделал правильно?
Спасибо за любую помощь
Редактировать: переменная $current_local_time
берется так:
date_default_timezone_set('Europe/London');
$time = date("H:i", time());
$myDateTime = new DateTime($time, new DateTimeZone('GMT'));
$myDateTime->setTimezone(new DateTimeZone($timezone));
$current_local_time = $myDateTime->format('H:i:s');
и выводит как текущее время в другой стране, когда отображается эхо.
Редактировать 2:
Я изменил значение $ current_local_time на следующее:
$current_local_time = $myDateTime->format('H:i:s');
$timestamp2 = strtotime($current_local_time);
и предложение where к этому:
WHERE
(
'$timestamp2' BETWEEN
UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.open))
AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.close))
)
Это работает нормально, но если t.close
установлено в 23:30, оно фактически не закроется до 23:31. Есть ли способ выделить минутку из захваченного времени, чтобы разобраться с этим?