de esta manera se formatea la fecha y hora a la zona horaria del usuario que utilice la web, por ejemplo, imagina que el server compartido esta en canada y se conecta un usuario en argentina, las fechas y horas ingresadas o registradas en tu base no van a coincidir con la del usuario, por las diferencias horarias.
LISTADO DE ZONAS HORARIAS
Tambien podrias utilizar un servicio de localización por IP para hacer más dinamico el asunto:
Código PHP:
Ver original//retorna la fecha formateada a la zona horaria indicada por las funciones anteriores
public function date($time=null){ if($time == null){
$timezone = $this->city($this->IPreal())->timezone;
}else{
$timezone = $time;
}
return date("Y-m-d H:i:s"); }//END
//retorna la ip del usuario
public function IPreal() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) return $_SERVER['HTTP_CLIENT_IP'];
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) return $_SERVER['HTTP_X_FORWARDED_FOR'];
return $_SERVER['REMOTE_ADDR'];
}//fin funcion IPreal
//Recibe como parametro la ip a verificar
public function city($X){
$reader = new Reader(__DIR__.'/GeoLite2-City.mmdb');
$data = $reader->city($X);
'isoCode' => $data->country->isoCode,
'nombre' => $data->country->name,
'estado' => $data->mostSpecificSubdivision->name,
'isoEstado' => $data->mostSpecificSubdivision->isoCode,
'ciudad' => $data->city->name,
'postal' => $data->postal->code,
'latitud' => $data->location->latitude,
'longitud' => $data->location->longitude,
'timezone' => $data->location->timeZone,
);
return $out;
}
de
AQUI puedes descargarte las bases de datos de geolite para verificar las ip y seguir las instrucciones para su uso con php, esas funciones las utilizo dentro de una clase en codeigniter, pero facilmente puedes adaptarlas a tu trabajo.