TimeZone

Как определить геолокационные данные пользователя
Как определить геолокационные данные пользователя

Для того чтобы определить локацию пользователя, нам понадобится его IP и база данных со списком IP адресов и привязанных к ней территориальных данных. Но так как пример с БД мы уже реализовывали раньше, в данной статье. То сегодня мы немного усложним нашу задачу, и будет взаимодействовать со сторонним сервисом по его API, получая в ответ всю интересующую нас информацию — временную зону, широту, долготу, страну и город.

читать полностью...

Как определить регион по IP на PHP используя БД
Как определить регион по IP на PHP используя БД

В этой статье рассмотрим один из вариантов определения локации пользователя по его IP адресу. А именно, с использованием существующей базы регионов и присвоенным им IP адресов сети.

Существующих баз не мало. Но мне пришлось иметь дело с базой от сайта ip2location.com. Ничего плохого сказать о его базе не могу, т. к. моя область и область некоторых моих заказчиков по нему была найдена.

Первое что нам понадобится, это скачать файл с БД. Они его предоставляют в формате CSV. И скачать его можно с этой страницы.

Импорт данных файла регионов и IP

Следуйте инструкции в описании, и вы сэкономите время. Т.к. я изначально решил попробовать импортировать данные через phpMyAdmin (используя импорт CSV). И это заняло гораздо больше времени консольный импорт.
читать полностью...

Как получить время всех таймзон (timezone) на PHP
Как получить время всех таймзон (timezone) на PHP

Для того что бы получить массив списка всех тайм зон с временной разницей по Гринвичу, используйте следующую функцию:

function get_time_timezones()
{
	$zones_array = array();
	$timestamp = time();
	
	$default_timezone = date_default_timezone_get();
	$timezone_list = timezone_identifiers_list();
	
	foreach ($timezone_list as $zone)
	{
		date_default_timezone_set($zone);
		$zones_array[$zone] = date('P', $timestamp);
	}
	
	date_default_timezone_set($default_timezone);
	
	return $zones_array;
}

читать полностью...