Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriellins

[Resolvido] Como não depender da data do servidor?

Recommended Posts

Tenho um sistema que usa muito o comando date(), mas gostaria de não depender tanto da data do servidor, pq as mulas do host (ou melhor do datacenter) podem mudar a data (já aconteceu) daí meu sistema vai pro brejo e dá um trabalhão pra consertar depois.

 

Tem alguma outra maneira mais confiável para o meu sistema não depender tanto da data do servidor?

 

Por exemplo, algum site que funcione como um "site-relógio" mundial? Será que seria uma boa?

 

Ou o melhor e mais simples seria mudar de empresa de hospedagem?

 

 

Gabriel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você nao vai pegar a data do servidor tem q pegar do cliente e pra isso tem q usar javascritpt

 

Segue um código que creio que resolvera seus problemas...

 

 

<html>

<script language="JavaScript">

 

var agora = new Date()

 

var dia = agora.getDate();

var mes = agora.getMonth() + 1;

var ano = agora.getFullYear();

 

var hora = agora.getHours();

var min = agora.getMinutes();

var seg = agora.getSeconds();

 

</script>

 

<?

 

$data = "<script language=javascript>document.write(ano);document.write(mes);document.write(dia);</script>";

 

$horario = "<script language=javascript>document.write(hora);document.write(min);document.write(seg);</script>";

 

echo "$data : $horario";

 

?>

 

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive esse problema... A solução que encontrei foi pegar a hora de um servidor de horário, no caso time-b.timefreq.bldrdoc.gov...

O Código que usei foi esse:

<?
$zona = -2;

if ($fp = fsockopen("time-b.timefreq.bldrdoc.gov", 13, $errno, $errstr, 2)) {
	$tempo = fread($fp, 50);
	if (preg_match("/\s+\d+-\d+-\d+\s+/", $tempo, $matches)) $data = $matches[0];
	if (preg_match("/\s+\d+:\d+:\d+\s+/", $tempo, $matches)) $horario = $matches[0];

	$dia = substr($data,7,2);
	$mes = substr($data,4,2);
	$ano = substr($data,1,2);
	$hora = substr($horario,1,2) + $zona;
	$minutos = substr($horario,4,2);
	$segundos = substr($horario,7,4);

	$valor = date("d/m/Y H:i:s", mktime($hora,$minutos,$segundos,$mes,$dia,$ano));
	echo $valor;
}
?>

PS.: A variável $zona é o TimeZone que no Brasil equivale a -3, no código ela está como -2 por causa do horário de verão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem as funções nativas do PHP para fazer a setagem do timeZone

 

apesar disso eu prefiro fazer manualmente

 

é +- como o pessoal aí sugeriu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive esse problema... A solução que encontrei foi pegar a hora de um servidor de horário, no caso time-b.timefreq.bldrdoc.gov...

Justamente isso que eu queria, muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.