Недавно я видел, как кто-то задавал вопрос в группе Facebook Laravel о том, «как получить местный часовой пояс пользователя по его собственной геолокации?».
Я тоже задавался вопросом, как это сделать? Обычно я устанавливаю часовой пояс в файле Config/App.php, а затем изменяю 'timezone' =› "Asia/Jakarta" в зависимости от страны, в которой он находится. Сделанный! Ничего особенного ! :D
Хорошо, вернемся к вопросу выше!
Итак, я погуглил, чтобы найти ответы, а затем нашел. В Ларакастах тоже кто-то задавал подобные вопросы. ссылка здесь
У одного пользователя с именем socialmosaic были интересные ответы.
Вот ответы:
- Получить IP-адрес пользователя http://ipecho.net/plain
- Преобразуйте 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. В любом случае, извините за мою грамматическую ошибку в английском.
Ссылки ссылки: