Вы ничего не можете сделать с устройством / браузером пользователя / чем-либо еще с помощью php, так как это ответственность javascript (или любого языка на стороне клиента).
PHP работает на сервере, а не на устройстве пользователя.time()
всегда даст вам время сервера в эпоху, а не пользователя.
Для получения более подробной информации о том, как получить местное время пользователя с помощью javascript (используя jquery), проверьте этот ответ .Хотя вы никогда не можете доверять этому, поскольку @FelippeDuarte и @Andreas обсуждали это в комментариях к вашему вопросу.
Обновление Я копирую самые важные части упомянутого ответа.
На странице PHP, где вы хотите иметь часовой пояс в качестве переменной, поместите этот фрагмент кода где-то в верхней части страницы:
<?php
session_start();
$timezone = $_SESSION['time'];
?>
Это будет читать переменную сеанса "время", который мы сейчас собираемся создать.
На той же странице, в разделе <head>
, прежде всего необходимо включить jQuery:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
Также в <head>
section ,, вставьте этот jQuery:
<script type="text/javascript">
$(document).ready(function() {
if("<?php echo $timezone; ?>".length==0){
var visitortime = new Date();
var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;
$.ajax({
type: "GET",
url: "http://example.com/timezone.php",
data: 'time='+ visitortimezone,
success: function(){
location.reload();
}
});
}
});
</script>
Создайте новый файл с именем timezone.php и укажите на него указанный выше URL
<?php
session_start();
$_SESSION['time'] = $_GET['time'];
?>
Если этоработает правильно, он сначала загрузит страницу, выполнит JavaScript и перезагрузит страницу.После этого вы сможете прочитать переменную $ timezone и использовать ее в свое удовольствие!Возвращает текущее смещение часового пояса UTC / GMT (GMT -7) или любой другой часовой пояс, в котором вы находитесь.