используя функцию localtime для получения локального времени пользователя в php

0

Я пытаюсь найти способ получить локальное время пользователя, используя 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; 
  • 0
    Вы правы, часовой пояс / местное время клиента недоступен на стороне сервера, если клиент специально не сказал серверу, что это такое
  • 0
    Я так и думал, хотя кажется, что у php будет функция localtime. Немного вводит в заблуждение
Показать ещё 2 комментария
Теги:

1 ответ

1

Если вы не можете получить местоположение пользователя и иметь базу данных, которая отображает эту информацию в часовом поясе, вам обычно не повезло.

Однако, если вы находитесь в контексте html, вы можете получить запрошенную информацию с помощью javascript (и отправить его обратно на сервер):

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

Подробнее @MDN

Используя эту информацию, вы можете создать локальное время пользователя на стороне сервера, используя основные функции даты.

  • 0
    Спасибо за предложение. Я не думаю, что я пойду на такие меры, это не важно для веб-сайта, это будет иметь больше смысла. +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню