Jump to content
TeixeiraRamos

Data em relação a hora

Recommended Posts

Olá,

Por favor favor, em um script tenho:

<?php 
		$sql = "SELECT pensamento_do_dia FROM tbpdodia WHERE data_inicio = CURRENT_DATE";

.
.
.
?>

Meu computador a data e a hora se encontram normal.

Contudo, 2 (duas) horas antes das 00:00 a data muda, só no site, para o dia dia seguinte.

Ontem, 23/02/2019, às 19:00 estava no site 23/12/2019 (igual ao computador). Quando chegou mais ou menos às 22:01, abri o site já se entrava a data 24/02/2019.

A query dentro das linhas <?php ?> também influencia. Tenho que colocar algo na sql com current_date. 

Share this post


Link to post
Share on other sites

Olá!!

Pode estar apenas relacionado a uma incompatibilidade com o teu SO, podes tentar ver os logs a ver se consegues descobrir algo, acho isto pouco provavel masssss...

 

Não mostras-te o código em php que mostra a hora na página mas lembrando que tens de ter algo semelhante a isto: 

date_default_timezone_set('Europe/Lisbon');

Lembrando que tens de escolher o fuso horario de acordo com país onde estás claro: http://php.net/manual/en/timezones.php 

 

 

Depois podes usar a função 'Date do PHP para mostrar a data e hora por exemplo'

echo date("Y-m-d H:i:s");

A função date tem vários parâmetros : http://php.net/manual/en/function.date.php

 

 

 

Se mesmo  assim não der, é um pouco estranho sendo que o php vai buscar a hora ao servidor onde está hospedado o site!! 

Uma outra alternativa seria também verificar a configuração que está no ficheiro PHP.ini  entra neste ficheiro e procura a seguinte linha "date.timezone =" depois basta escolher o 'timezone' correspondente ao teu país podes usar o mesmo site que mencionei a cima para servir de ajuda : http://php.net/manual/en/timezones.php

 

 

Espero que ajude

Abraço

 

 

Share this post


Link to post
Share on other sites

Vitor,

Vou verificar tudo o que você recomendou.

Realmente, eu também achei estranho se estou usando:

Citar

CURRENT_DATE

 

Como estou no Rio de Janeiro uso quando necessário sempre usei:

<body>
	<?php 
		date_default_timezone_set('America/Sao_Paulo');
		$date = date('Y-m-d H:i');
		echo $date;
	?>
	
</body>

.

Ocorre que as frases estão no banco em uma coluna e na outra as datas. Acho bem mais tranquilo usar a própria sql para mostrar, o que eu desejo.

 

  Para as outras partes do site uso:

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

Vou observar novamente hoje.

Obrigado.

Share this post


Link to post
Share on other sites

Olá gente,

No meu php.ini estava assim:

date.timezone ="UTC"

Mudei para:

date.timezone ="America/Sao_Paulo"

Vou acompanhar, acredito que agora, na página, vai mudar a data depois das 00:00.

Obrigado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By TeixeiraRamos
      Olá,
      Com essa "Procedures" consigo criar a coluna data e semana.
      Como poderia fazer para a "Precedures" criar uma outra coluna só com o dia e o mês, como por exemplo: 27 de fevereiro
      Obrigado
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tb02_santosdodia(ctb02_datasantosdia, ctb02_diassemanas) VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END  
       
    • By asacap1000
      Salve Galera, estou quase finalizando um relatório porém travei em um campo.
      Este relatório consiste em subtrair hora de entrada e saída, trazer em dias horas e minutos de um período.
      Depois preciso calcular a média destes resultados.
      eu barrei na parte de dias não vem a informação correta.
       
      Segue select se alguem puder me dar uma força.
       
      SELECT io.id_in_out, IOP.DOCUMENT,IO.TIME_IN entrada, IO.TIME_RELEASE_PP saida, LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) /24 )), 2, '0') || ':' || LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) * 24 )), 2, '0') || ':' || LPAD(TRUNC(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600) / 60), 2, '0') || ':' || LPAD(TRUNC(MOD(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600), 60)), 2, '0') TEMPO FROM DESMEMBR DD, IN_OUT_POS IOP, IN_OUT IO, SPEDITEURE S, VEHICLE V, DRIVER D WHERE DD.TYP_PROCESS = 'DINACI' AND 'DI' = IOP.TYP_DOCUMENT AND DD.NR_DI = IOP.DOCUMENT AND IOP.ID_IN_OUT = IO.ID_IN_OUT AND IO.ART_IN_OUT IN ('CA', 'CC', 'CCE') AND IO.STAT <> '80' AND S.ID_SPEDITEUR = IO.ID_SPEDITEUR AND V.ID_VEHICLE = IO.ID_VEHICLE AND IO.TIME_IN >= TO_DATE('01/12/2018', 'dd/mm/yyyy') AND IO.TIME_IN <= TO_DATE('31/12/2018', 'dd/mm/yyyy') AND D.ID_DRIVER = IO.ID_DRIVER O resultado acima está vindo assim:
       
      1    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
      2    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
       
      Depois de acertar isso preciso realizar a média que a principio eu utilizaria o AVG mas dá erro.
       
      Agradeço quem puder me ajudar.
    • By Nioshi
      Bom dia pessoal, tenho o seguinte problema, meu back-end com PHP precisa fazer um select no banco de dados SQL server, e uma das condições para pegar o dado é a data, até ai sem problemas, se eu utilizar:
      $dataInicio = $dataInicio->format('d/m/Y'); ele pega o dado sem problema algum do meu banco, porem quando foi tentado implementar em outro SQL Server, ele retorna o seguinte erro: 
      SQLSTATE [22007, 242]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]A conversão de um tipo de dados nvarchar em um tipo de dados datetime resultou em um valor fora do intervalo. ou seja, eu acho que o problema é a forma que o sql foi instalado(inglês,português), enfim, o que eu realmente preciso e se tem como eu saber o dateformat do SQL server, antes de setar a variável da data para consulta.
       
      no SQL do cliente se colocar o seguinte código:
      $dataInicio = $dataInicio->format('m/d/y'); ele também funciona sem problema algum, o que eu preciso saber é quando utilizar qual.
       
      Obrigado desde já.
    • By silvagno
      Boa tarde,
       
      Tenho a seguinte input date time,  o que acontece que essa input chama sua id, porem não funciona com o meu script porque o script chama name e quando mudo para id não funciona o date time.
      É um script de replaceAll, ou seja ao selecionar a data e a hora no date time em teoria deveria substituir (NOME DO CLIENTE) pela data e hora.
       
      Bom, eu gostaria de saber se tem como modificar o script para chamar a id em vez do name ou ajustar a input para ser chamada por name.
      $('input[name="demo3"]').change(function(){ var nome = $(this).val(); var text = $('textarea[name="nome pessoal"]').val(); $('textarea[name="nome pessoal"]').val(text.replaceAll('(NOME DO CLIENTE)',nome)); }); <input id="demo3" type="text" size="25"><a href="javascript:NewCal('demo3','ddmmmyyyy',true,24)"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>  
    • By TeixeiraRamos
      Por favor,
      MySQL com PHP7
      Estou digitando assim:
      echo "Data Ano: " . $row_registros['DATE(format([data_ano_liturgico],("d/m/Y")'] . "<br>"; Esperava esse resultado, por exemplo: 14/09/2018
       
      Estou tendo esse resultado:
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.