+ Responder ao Tópico



  1. #1

    Padrão data inferior a 1969 errada em php

    Estou com algo muito estranho acontecendo com meu código e gostaria de saber se alguem já viu isso...

    estou trabalhando com php+apache+mysql, e no BD há uma tabela com um campo Date. pelo php insiro os valores certinho, estão todos ok no banco de dados.

    porém, no momento de exibir, há um problema com alguns usuarios cadastrados.

    os que nasceram após 1970, a data é exibida corretamente, mas os que nasceram antes, sempre exibe 31/12/1969, independente da data. para exibir estou usando o seguinte código:


    echo date("d/m/Y", strtotime($vetor[DataNasc]));

    alguém já viu isso?

    Grata,

    Natascha

  2. #2

    Padrão Re: data inferior a 1969 errada em php

    como os dados estão armazenados no BD? se eles estiverem com o tipo integer (que é um jeio simples que eu as vezes uso) os valores antes de 1970 são menores do que um, por isto como datas negativas (unix timestamp) são estranhas o php coloca como o minimo possível: ZERO!!!! acho que é uma falha interna do PHP e de muitos programas escritos para UNIX. Tente trabalhar com os strings diretamente, ou experimente ver a saida da função strtotime($vetor[DataNasc]) que vc está usando. Se der negativo a minha teoria está correta...... já ouviu falar do BUG do ano 2038??? é um problema deste tipo.

  3. #3

    Padrão Re: data inferior a 1969 errada em php

    seu campo de data esta como no banco? dd-mm-yyyy ou dd-mm-yy?

    só uma dica, (eu pelo menos odeio o campo do tipo date) eu uso campo do tipo varchar e gravo a data no formato unixtimestamp, ai fica facil converter, fazer somas,etc..