Ir para conteúdo
Fórum Script Brasil
  • 0

Horário de Verão


viper33

Pergunta

Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

Link para o comentário
Compartilhar em outros sites

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

O computador que utilizo está com a hora correta. E não tem uma maneira mais prática e funcional? Quero dizer, se alterar manualmente quando acabar o horário de verão terei que alterar novamente e assim por diante.

E como alterar a hora manualmente?

Editado por viper33
Link para o comentário
Compartilhar em outros sites

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

O computador que utilizo está com a hora correta. E não tem uma maneira mais prática e funcional? Quero dizer, se alterar manualmente quando acabar o horário de verão terei que alterar novamente e assim por diante.

E como alterar a hora manualmente?

tenta isso talvez de certo

date_default_timezone_set('America/Sao_Paulo');$data = date('d/m/Y');$hora = date('H:i:s');

Link para o comentário
Compartilhar em outros sites

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

O computador que utilizo está com a hora correta. E não tem uma maneira mais prática e funcional? Quero dizer, se alterar manualmente quando acabar o horário de verão terei que alterar novamente e assim por diante.

E como alterar a hora manualmente?

tenta isso talvez de certo

date_default_timezone_set('America/Sao_Paulo');$data = date('d/m/Y');$hora = date('H:i:s');

Tentei mas não funcionou. Continuou do mesmo jeito. Mas obrigado pela tentativa.

Link para o comentário
Compartilhar em outros sites

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

O computador que utilizo está com a hora correta. E não tem uma maneira mais prática e funcional? Quero dizer, se alterar manualmente quando acabar o horário de verão terei que alterar novamente e assim por diante.

E como alterar a hora manualmente?

tenta isso talvez de certo

date_default_timezone_set('America/Sao_Paulo');$data = date('d/m/Y');$hora = date('H:i:s');

Tentei mas não funcionou. Continuou do mesmo jeito. Mas obrigado pela tentativa.

tente isso

class HorarioVerao

{

/* obs

O horario de verão inicia no terceiro domindo de outubro e termina no terceiro domindo de fevereiro

podendo exentender caso coincidir_se as datas entre o mesmo e carnaval

*/

var $Inicio;

var $Final;

function diasemana($data)

{

/*$ano = substr("$data", 0, 4);

$mes = substr("$data", 5, -3);

$dia = substr("$data", 8, 9); */

$s=explode("-",$data);

$mes=$s[1];

$ano=$s[0];

$dia=$s[2];

$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );

switch($diasemana) {

case"0": $diasemana = "Domingo"; break;

case"1": $diasemana = "Segunda-feira"; break;

case"2": $diasemana = "Terça-feira"; break;

case"3": $diasemana = "Quarta-feira"; break;

case"4": $diasemana = "Quinta-feira"; break;

case"5": $diasemana = "Sexta-feira"; break;

case"6": $diasemana = "Sábado"; break;

}

return $diasemana;

}

function DefinirHorar()

{

$Data=date('Y-m-d');

$Ano=date('Y');

$Mes=10;

$ConD=0;

/* definindo os domingos iniciais de outubro*/

for($i=1; $i<=31; $i++)

{

if ($this->diasemana($Ano.'-'.$Mes.'-'.$i) == 'Domingo')

{

$ConD++;

if ($ConD==3)

{

$this->Inicio=$Domingos[]=$Ano.'-'.$Mes.'-'.$i;

}

}

}

/* defindo os domingos de fevereiro mes final */

$Mes=2;

(Date('m') <10) ?($Ano=date('Y')) : ( $Ano+=1);

$ConF=0;

$Ul=cal_days_in_month(CAL_GREGORIAN, $Mes, $Ano);

for($i=1; $i<=$Ul; $i++)

{

if ($this->diasemana($Ano.'-'.$Mes.'-'.$i) == 'Domingo')

{

$ConF++;

if ($ConF==3)

{

$this->Final=$DomingoF[]=$Ano.'-'.$Mes.'-'.$i;

}

}

}

} /* final da função para criar inicio */

function CompDate()

{

$Hora=date('H:i:s');

$Data=date('Y-m-d');

if (empty($this->Final))

{

$retorno="Data final da horário de verão se encontra em branco.";

}

else

{

if (empty($this->Inicio))

{

$retorno="Data inicial do horário de verão se encontra em branco.";

}

else

{

/* transforma data em tempo */

$Inicio=explode("-",$this->Inicio);

$Final=explode("-",$this->Final);

$Atual=explode("-",$Data);

$TempoInicio=mktime(0,0,0,$Inicio[0],$Inicio[1],$Inicio[2]);

$TempoFinal=mktime(0,0,0,$Final[0], $Final[1], $Final[2]);

$TempoAtual=mktime(0,0,0,$Atual[0], $Atual[1], $Atual[2]);

/* fazendo a comparação */

if ( ($TempoAtual>=$TempoInicio) && ($TempoFinal<=$TempoAtual) )

{

list($H, $M, $S)=explode(":",$Hora);

$Segundos=( ($H*60*60)+($M*60)+$S); /* atual */

$Segundos+=3600;

/* transformando em horas novamente */

$H=(int)($Segundos/3600);

$M=(int)(($Segundos%3600)/60);

$S=(int)(($Segundos%3600)%60);

$retorno=$H.":".$M.":".$S;

}

else

{

$retorno=$Hora;

}

}

}

$this->Hora=$retorno;

} /* final da funçãop */

function __construct()

{

$this->DefinirHorar();

$this->CompDate();

}

}

$Hora=new HorarioVerao();

echo $Hora->Hora;

ela acrescenta manualmente 1 hora na data caso ela esteja dentro das datas estabelecidas no horario de verão ou seja inicia no terceiro domingo de outubro e termina no terceiro domingo de fevereiro.

até mais

Link para o comentário
Compartilhar em outros sites

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

O computador que utilizo está com a hora correta. E não tem uma maneira mais prática e funcional? Quero dizer, se alterar manualmente quando acabar o horário de verão terei que alterar novamente e assim por diante.

E como alterar a hora manualmente?

tenta isso talvez de certo

date_default_timezone_set('America/Sao_Paulo');$data = date('d/m/Y');$hora = date('H:i:s');

Tentei mas não funcionou. Continuou do mesmo jeito. Mas obrigado pela tentativa.

tente isso

class HorarioVerao

{

/* obs

O horario de verão inicia no terceiro domindo de outubro e termina no terceiro domindo de fevereiro

podendo exentender caso coincidir_se as datas entre o mesmo e carnaval

*/

var $Inicio;

var $Final;

function diasemana($data)

{

/*$ano = substr("$data", 0, 4);

$mes = substr("$data", 5, -3);

$dia = substr("$data", 8, 9); */

$s=explode("-",$data);

$mes=$s[1];

$ano=$s[0];

$dia=$s[2];

$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );

switch($diasemana) {

case"0": $diasemana = "Domingo"; break;

case"1": $diasemana = "Segunda-feira"; break;

case"2": $diasemana = "Terça-feira"; break;

case"3": $diasemana = "Quarta-feira"; break;

case"4": $diasemana = "Quinta-feira"; break;

case"5": $diasemana = "Sexta-feira"; break;

case"6": $diasemana = "Sábado"; break;

}

return $diasemana;

}

function DefinirHorar()

{

$Data=date('Y-m-d');

$Ano=date('Y');

$Mes=10;

$ConD=0;

/* definindo os domingos iniciais de outubro*/

for($i=1; $i<=31; $i++)

{

if ($this->diasemana($Ano.'-'.$Mes.'-'.$i) == 'Domingo')

{

$ConD++;

if ($ConD==3)

{

$this->Inicio=$Domingos[]=$Ano.'-'.$Mes.'-'.$i;

}

}

}

/* defindo os domingos de fevereiro mes final */

$Mes=2;

(Date('m') <10) ?($Ano=date('Y')) : ( $Ano+=1);

$ConF=0;

$Ul=cal_days_in_month(CAL_GREGORIAN, $Mes, $Ano);

for($i=1; $i<=$Ul; $i++)

{

if ($this->diasemana($Ano.'-'.$Mes.'-'.$i) == 'Domingo')

{

$ConF++;

if ($ConF==3)

{

$this->Final=$DomingoF[]=$Ano.'-'.$Mes.'-'.$i;

}

}

}

} /* final da função para criar inicio */

function CompDate()

{

$Hora=date('H:i:s');

$Data=date('Y-m-d');

if (empty($this->Final))

{

$retorno="Data final da horário de verão se encontra em branco.";

}

else

{

if (empty($this->Inicio))

{

$retorno="Data inicial do horário de verão se encontra em branco.";

}

else

{

/* transforma data em tempo */

$Inicio=explode("-",$this->Inicio);

$Final=explode("-",$this->Final);

$Atual=explode("-",$Data);

$TempoInicio=mktime(0,0,0,$Inicio[0],$Inicio[1],$Inicio[2]);

$TempoFinal=mktime(0,0,0,$Final[0], $Final[1], $Final[2]);

$TempoAtual=mktime(0,0,0,$Atual[0], $Atual[1], $Atual[2]);

/* fazendo a comparação */

if ( ($TempoAtual>=$TempoInicio) && ($TempoFinal<=$TempoAtual) )

{

list($H, $M, $S)=explode(":",$Hora);

$Segundos=( ($H*60*60)+($M*60)+$S); /* atual */

$Segundos+=3600;

/* transformando em horas novamente */

$H=(int)($Segundos/3600);

$M=(int)(($Segundos%3600)/60);

$S=(int)(($Segundos%3600)%60);

$retorno=$H.":".$M.":".$S;

}

else

{

$retorno=$Hora;

}

}

}

$this->Hora=$retorno;

} /* final da funçãop */

function __construct()

{

$this->DefinirHorar();

$this->CompDate();

}

}

$Hora=new HorarioVerao();

echo $Hora->Hora;

ela acrescenta manualmente 1 hora na data caso ela esteja dentro das datas estabelecidas no horario de verão ou seja inicia no terceiro domingo de outubro e termina no terceiro domingo de fevereiro.

até mais

O código está correto? Porque quando coloco o mesmo entre as tags PHP no código aparece erro como se estivesse faltando fechar uma tag. E no programa o campo da data e hora não mostra nada.

Link para o comentário
Compartilhar em outros sites

  • 0
Tenho o seguinte código para mostrar data e hora na pagina inicial do meu programa:

<?PHP
  $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
  "Setembro", "Outubro", "Novembro", "Dezembro");
  $dia = date ("d", time());
  $mes = date ("m", time());
  $ano = date ("Y", time());
  $hora = date('H:i:s');
  echo $dia. " de ". $meses [$mes-1] . " de " . $ano. " - " . $hora;
?>

Mas se são 17:00 ele mostra 16:00.

Onde está o erro?

Não tem nada de errado ele pega a hora do servidor, essa deve ser a hora que o servidor está configurado, talvez não obdeça o horário de verão. nesse caso pode-se fazer-isso manualmente acrescentando uma hora caso a data pertença aos meses que integram o horario de verão.

O computador que utilizo está com a hora correta. E não tem uma maneira mais prática e funcional? Quero dizer, se alterar manualmente quando acabar o horário de verão terei que alterar novamente e assim por diante.

E como alterar a hora manualmente?

tenta isso talvez de certo

date_default_timezone_set('America/Sao_Paulo');$data = date('d/m/Y');$hora = date('H:i:s');

Tentei mas não funcionou. Continuou do mesmo jeito. Mas obrigado pela tentativa.

tente isso

class HorarioVerao

{

/* obs

O horario de verão inicia no terceiro domindo de outubro e termina no terceiro domindo de fevereiro

podendo exentender caso coincidir_se as datas entre o mesmo e carnaval

*/

var $Inicio;

var $Final;

function diasemana($data)

{

/*$ano = substr("$data", 0, 4);

$mes = substr("$data", 5, -3);

$dia = substr("$data", 8, 9); */

$s=explode("-",$data);

$mes=$s[1];

$ano=$s[0];

$dia=$s[2];

$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );

switch($diasemana) {

case"0": $diasemana = "Domingo"; break;

case"1": $diasemana = "Segunda-feira"; break;

case"2": $diasemana = "Terça-feira"; break;

case"3": $diasemana = "Quarta-feira"; break;

case"4": $diasemana = "Quinta-feira"; break;

case"5": $diasemana = "Sexta-feira"; break;

case"6": $diasemana = "Sábado"; break;

}

return $diasemana;

}

function DefinirHorar()

{

$Data=date('Y-m-d');

$Ano=date('Y');

$Mes=10;

$ConD=0;

/* definindo os domingos iniciais de outubro*/

for($i=1; $i<=31; $i++)

{

if ($this->diasemana($Ano.'-'.$Mes.'-'.$i) == 'Domingo')

{

$ConD++;

if ($ConD==3)

{

$this->Inicio=$Domingos[]=$Ano.'-'.$Mes.'-'.$i;

}

}

}

/* defindo os domingos de fevereiro mes final */

$Mes=2;

(Date('m') <10) ?($Ano=date('Y')) : ( $Ano+=1);

$ConF=0;

$Ul=cal_days_in_month(CAL_GREGORIAN, $Mes, $Ano);

for($i=1; $i<=$Ul; $i++)

{

if ($this->diasemana($Ano.'-'.$Mes.'-'.$i) == 'Domingo')

{

$ConF++;

if ($ConF==3)

{

$this->Final=$DomingoF[]=$Ano.'-'.$Mes.'-'.$i;

}

}

}

} /* final da função para criar inicio */

function CompDate()

{

$Hora=date('H:i:s');

$Data=date('Y-m-d');

if (empty($this->Final))

{

$retorno="Data final da horário de verão se encontra em branco.";

}

else

{

if (empty($this->Inicio))

{

$retorno="Data inicial do horário de verão se encontra em branco.";

}

else

{

/* transforma data em tempo */

$Inicio=explode("-",$this->Inicio);

$Final=explode("-",$this->Final);

$Atual=explode("-",$Data);

$TempoInicio=mktime(0,0,0,$Inicio[0],$Inicio[1],$Inicio[2]);

$TempoFinal=mktime(0,0,0,$Final[0], $Final[1], $Final[2]);

$TempoAtual=mktime(0,0,0,$Atual[0], $Atual[1], $Atual[2]);

/* fazendo a comparação */

if ( ($TempoAtual>=$TempoInicio) && ($TempoFinal<=$TempoAtual) )

{

list($H, $M, $S)=explode(":",$Hora);

$Segundos=( ($H*60*60)+($M*60)+$S); /* atual */

$Segundos+=3600;

/* transformando em horas novamente */

$H=(int)($Segundos/3600);

$M=(int)(($Segundos%3600)/60);

$S=(int)(($Segundos%3600)%60);

$retorno=$H.":".$M.":".$S;

}

else

{

$retorno=$Hora;

}

}

}

$this->Hora=$retorno;

} /* final da funçãop */

function __construct()

{

$this->DefinirHorar();

$this->CompDate();

}

}

$Hora=new HorarioVerao();

echo $Hora->Hora;

ela acrescenta manualmente 1 hora na data caso ela esteja dentro das datas estabelecidas no horario de verão ou seja inicia no terceiro domingo de outubro e termina no terceiro domingo de fevereiro.

até mais

O código está correto? Porque quando coloco o mesmo entre as tags PHP no código aparece erro como se estivesse faltando fechar uma tag. E no programa o campo da data e hora não mostra nada.

O erro estava em uma parte do código do meu formulário. A hora apareceu corretamente. Falta a data mas estou saindo para o almoço e vou ver quando voltar. Valeu.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...