Недавно я видел, как кто-то задавал вопрос в группе Facebook Laravel о том, «как получить местный часовой пояс пользователя по его собственной геолокации?».

Я тоже задавался вопросом, как это сделать? Обычно я устанавливаю часовой пояс в файле Config/App.php, а затем изменяю 'timezone' =› "Asia/Jakarta" в зависимости от страны, в которой он находится. Сделанный! Ничего особенного ! :D

Хорошо, вернемся к вопросу выше!

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

У одного пользователя с именем socialmosaic были интересные ответы.

Вот ответы:

  1. Получить IP-адрес пользователя http://ipecho.net/plain
  2. Преобразуйте IP-адрес вместе с файлом json, затем поместите IP-адрес пользователя в http://ip-api.com/json/ (IP-адрес пользователя).

Пример:

http://ip-api.com/json/123.123.234.232

Хорошо, давайте реализуем описанную выше логику на Laravel 5.x.

Шаг 1. Создайте файл helper.php в папке с файлами App.

Шаг 2. Автозагрузка Composer

Зарегистрируйте помощник в composer.json, добавьте массив файлов в раздел автозагрузки.

“autoload”: {
 “classmap”: [“database”],
 “psr-4”: {“App\\”: “app/”},
 “files” : [“app/Helper.php”]
}

не забудьте выполнить автозагрузку дампа композитора на своем терминале CLI

Шаг 3. Использование вспомогательной функции

  • Через контроллер
  • Или непосредственно в шаблоне блейда
<p> {{ Carbon\Carbon::now(get_local_time()) }} </p>

Сделанный!

P.s. В любом случае, извините за мою грамматическую ошибку в английском.

Ссылки ссылки: