Я пытаюсь найти способ получить локальное время пользователя, используя php, и не полагаться на часовой пояс, установленный в php.ini
. Я нашел функцию localtime()
, но это не сработало, оно все равно дает мне время, основанное на часовом поясе, установленном в php.ini
. Я смотрю, что местное время недоступно, используя скрипт на стороне сервера, как это может быть с клиентским сценарием, ниже - это то, что я пробовал, но не работаю. Спасибо за прочтение
$time = localtime(time(),true);
$h = $time['tm_hour'];
$m = $time['tm_min'];
$s = $time['tm_sec'];
$localTime = $h.":".$m.":".$s;
Если вы не можете получить местоположение пользователя и иметь базу данных, которая отображает эту информацию в часовом поясе, вам обычно не повезло.
Однако, если вы находитесь в контексте html, вы можете получить запрошенную информацию с помощью javascript (и отправить его обратно на сервер):
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
Используя эту информацию, вы можете создать локальное время пользователя на стороне сервера, используя основные функции даты.