Jump to content


Photo

Somar Data Passando Apartir Do Ano 2038


  • Faça o login para participar
2 replies to this topic

#1 alvaro

alvaro

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 20/03/2008, 17:09

ola pessoal, eu estava achando uma maneira de somar datas ate ai normal o google me salvou , mas todos os scripts nao consequem dar um resultado quando a soma ultrapassa o ano 2038.
o codigo seria esse:

[codebox]function SomarData($data, $dias, $meses, $ano)
{
$data = explode("/", $data);
$newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano));
return $newData;
}
echo SomarData("20/03/2036", 6, 5, 2);
[/codebox]

pesquisando mais um pouco vi uma Biblioteca chamada adodb_date_time_library baixando o codigo ficou assim:

[codebox]require_once("adodb-time.inc.php");
function SomarData($data, $dias, $meses, $ano)
{
$data = explode("/", $data);
$newData = date("d/m/Y", adodb_mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano));
return $newData;
}
echo SomarData("20/03/2036", 6, 5, 2);[/codebox]

mas da esse erro:
Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in C:\webmaster\datas.php on line 14

e testando no servidor ele retorna essa data 20/07/1902 =/

alguem ja passou por isso?
valeu pessoal.

Edição feita por: alvaro, 20/03/2008, 17:14.


#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 22/03/2008, 02:58

Nooosssa! Bug 2k38, essa eu não via faz tempo :D
É um problema "semelhante" ao bug do milênio.
É uma coisa com quem ninguém se preocupa muuuuito porque é um problema relacionado a arquitetura 32bits e datas no formato UNIX, e até 2038 espera-se que esse pessoal já esteja usando 64bits! rs...
Mas isso pode dar alguma dor de cabeça no futuro.

Se você trocar date() por adodb_date() dá o mesmo problema?

#3 alvaro

alvaro

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 25/03/2008, 15:32

Nooosssa! Bug 2k38, essa eu não via faz tempo :D
É um problema "semelhante" ao bug do milênio.
É uma coisa com quem ninguém se preocupa muuuuito porque é um problema relacionado a arquitetura 32bits e datas no formato UNIX, e até 2038 espera-se que esse pessoal já esteja usando 64bits! rs...
Mas isso pode dar alguma dor de cabeça no futuro.

Se você trocar date() por adodb_date() dá o mesmo problema?


descupe a demora tive problemas aqui, deixa eu ficar velhinho para resolver isso =]

brigado amigo




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq