Подтвердить что ты не робот

Как я могу получить локальное время пользователя вместо времени сервера?

Как я могу получить время на стороне клиента? Когда я использую date(), он возвращает время сервера.

4b9b3361

Ответ 1

Как уже упоминалось, каждый PHP отображает время на стороне сервера.

Для клиентской стороны вам нужен Javascript, что-то вроде следующего должно сделать трюк.

var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();

if (minutes < 10) {
    minutes = "0" + minutes;
}

document.write("<b>" + hours + ":" + minutes + " " + "</b>");

И если вам нужен суффикс AM/PM, то должно работать следующее:

var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();

var suffix = "AM";

if (hours >= 12) {
    suffix = "PM";
    hours = hours - 12;
}

if (hours == 0) {
    hours = 12;
}

if (minutes < 10) {
    minutes = "0" + minutes;
}

document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>");

Вот список дополнительных функций JavaScript Date и Time, с которыми вы могли бы общаться.

Ответ 2

Здесь "PHP" решение:

echo '<script type="text/javascript">
var x = new Date()
document.write(x)
</script>';

Ответ 3

Вы можете использовать Geolocation по IP-адресу, чтобы определить, в какой стране находится пользователь, и затем использовать его.

Но использование Javascript или разрешение пользователю выбрать часовой пояс, вероятно, будет лучше.

Ответ 4

Поскольку PHP работает на стороне сервера, , вы не можете получить доступ к времени на стороне клиента из PHP: PHP мало знает о браузере - и вы можете иметь скрипты PHP, которые работают без вызывается из браузера.

Но вы можете получить его из Javascript (который выполняется на стороне клиента), а затем передать его на PHP через запрос Ajax, например.


И вот несколько вопросов + ответы, которые могут помочь вам начать:

Ответ 5

PHP - это серверная сторона, насколько я знаю.

Возможно, вы захотите использовать JavaScript.

Ответ 6

Вы можете использовать наш geoip API, который отображает текущее время требуемого IP вместе с другой информацией, связанной с часовым поясом. Просто зайдите на https://smartip.io и зарегистрируйтесь, чтобы получить бесплатный ключ API, который позволяет обрабатывать 250 000 IP-запросов в месяц на уровне Free. Вот как легко использовать наш API:

$.ajax ({
  type: "GET", 
url:"https://smartip.io/api/112.126.34.5/?api_key=[YOUR_API_KEY]",
success: function(response) { alert(response); }
});

Объект ответа будет содержать необходимую вам информацию о часовом поясе, а также много другой информации:

"timezone": {
    "iana-name": "America/New_York",
    "microsoft-name": "Eastern Standard Time",
    "date-time": "2019-07-05T20:54:23-05:00",
    "is-daylight-saving": true,
    "gmt-offset": -18000
}