On 26 jul 2006, someone impersonating Mathias Mejborn <mame06@ceus.dk>
came to dk.edb.internet.webdesign.serverside.php and said: 
> Christian Joergensen wrote:
>> Mathias Mejborn <mame06@ceus.dk> writes:
>> 
>>> Det virker fint nok hvis jeg bare skriver:
>>>
>>> d. <?=$d_gtagwall['date'];?>
>>>
>>> Men hvis jeg skriver:
>>>
>>> d. <?=date("d/m Y - H:i", $d_gtagwall['date']);?>
>>>
>>> Så bliver datoen udskrevet således:
>>>
>>> d. 01/01 1970 - 01:33
>>>
>>> Nogen ide til hvad jeg gør galt, har kigget på date funktionen på
>>> php.net men synes ikke at jeg der kan se hvad jeg gør galt.
>> 
>> Hvad indeholder $d_gtagwall['date']? 
>> 
> Jo det er et timestamp, udskrift fra mysql:
> 
> date        timestamp               ON UPDATE CURRENT_TIMESTAMP      
> Yes CURRENT_TIMESTAMP                  Change          Drop         
> Primary          Index         
>   Unique         Fulltext
Desværre bruger MySQL og PHP's date-funktioner to forskellige typer af 
timestamps: PHP's datefunktioner er bygget til at manipulere det 
klassiske Unix-timestamp (som tæller sekunder fra 1. januar 1970 og 
derfor ikke umiddelbart er læseligt med det blotte øje). MySQL har 
derimod sit timestamp-format, hvor 1. januar 1970 vil skrives som 
"19700101000000". Let læseligt, men ikke kompatibelt med PHP's date-
funktioner. 
Der er to muligheder for at løse dette:
Enten bruger man MySQL's timestamp og bruger PHP's string-funktioner på 
datoerne.
Eller - hvis man gerne vil bruge de mange fede PHP date-funktioner - 
konverterer man i sit SQL-request MySQL's timestamps til Unix-timestamps 
vha. MySQL-funktionen UNIX_TIMESTAMP().
Bruger man meget dato-formatering, er sidstnævnte en rigtig god vane at 
tillæge sig.
-- 
bonfils
http://kim.bonfils.com