Vai al contenuto

Giorni trascorsi dal 30/12/1899


magomac

Messaggi raccomandati

Ciao a tutti,

sto lavorando con un database che non ho creato io (viene da un vecchio programma) dove le date di nascita sono salvate come "numero di giorni trascorsi dal 30/12/1899".

Ora che questo database è diventato un db mysql, come faccio, nelle pagine PHP che mostrano i dati, a mostrare la data in un formato decente?

Bisogna anche considerare che il timestamp unix, che normalmente uso io per salvare le date, non raggiunge il 1899.....

Grazie...

Link al commento
Condividi su altri siti

ma la data come è salvata?? cioè nel database.. come compare? perchè io salvo le date con un semplice now() oppure non so l'insieme di tre variabili e quindi mi compaiono semlici numeri... poi ci sono altri modi di salvarle.. li compare percaso una serie di num?

Link al commento
Condividi su altri siti

nel database è salvata come cifra (solitamente di 5 cifre) che indica IL NUMERO DI GIORNI TRASCORSI DAL 30/12/1899.

Non chiedermi chi abbia avuto questa grande idea.... non ti dico quanto ci ho messo solo a capire il criterio.... vedevo questi numeri di 5 cifre senza senso....

Link al commento
Condividi su altri siti

l'unica è convertirla, sommando i giorni alla data di origine e poi usare le solite funzioni per la gestione delle date. Volendo puoi farti uno script e cambiarla direttamente all'interno del database, però devi sapere esattamente dove viene usata per evitare casotti

Link al commento
Condividi su altri siti

Grazie a tutti, comunque sono riuscito.... alla fine è stato più facile del previsto....

Se a qualcuno interessasse ho fatto così:

		$dnascita = $datiTesserato->dnascita;

		//converto data di nascita in formato decente
		// ora è salvata come numero di giorni trascorsi dal 30/12/1899 (voglio l'autografo del programmatore che l'ha pensato ;-) )

		//sottraggo al numero 25569 in modo da trasformare la data come i giorni trascorsi dal 1/1/1970
		$dnascita = $dnascita - 25569;
		//moltiplico il valore per 86400 (secondi in un giorno) e trovo il timestamp della data di nascita
		$dnascita = $dnascita*86400;
		//ci dovremmo essere!
		$dnascitaTesserato=$dnascita;

		//esplodo data di nascita
		$dnTessGiorno=date('d',$dnascitaTesserato);
		$dnTessMese=date('m',$dnascitaTesserato);
		$dnTessAnno=date('Y',$dnascitaTesserato);

		$dnTess_Vis = $dnTessGiorno.'/'.$dnTessMese.'/'.$dnTessAnno;

:shock::ciao:

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...