Я пытаюсь найти способ получить местное время пользователя с помощью 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;
Используя эту информацию, вы можете построить местное время пользователей на стороне сервера, используя основные функции даты.
Других решений пока нет …