Problem med formatering af unix timestamp

Tags:    php

Hey,

Jeg har et nyhedssystem, som automatisk gemmer et tidsstempel med UNIX_TIMESTAMP(NOW())...jeg formaterer det så med $date = date("d.m.y"),$row[date]); og printer med en echo...problemet er bare, så kommer det til at se sådan her ud fx: 19.01.38 (se http://www.jetsmarkskakklub.dk/forside.php)
Hvad går der galt??

----
It's not a bug, it's a feature!



10 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hey,

Jeg har et nyhedssystem, som automatisk gemmer et tidsstempel med UNIX_TIMESTAMP(NOW())...jeg formaterer det så med $date = date("d.m.y"),$row[date]); og printer med en echo...problemet er bare, så kommer det til at se sådan her ud fx: 19.01.38 (se http://www.jetsmarkskakklub.dk/forside.php)
Hvad går der galt??

----
It's not a bug, it's a feature!


Du skal bare bruge time();

--
Ronni Egeriis - http://sqdev.dk/
Co-Admin



Aah ok. Jeg bruger dog NOW() i mysql_query i stedet, og gemmer i DATETIME.


Hvis du brugte DATETIME og vil ændre til timestamp, skal du huske at ændre kolonnens typpe til tal i stedet for datetime. Du skal også huske at ændre alle de andre værdier der allerede står i din db så de bliver til timestamp-form



Gider du lige uddybe det? Mener du i stedet for unix_timestamp? For jeg vil faktisk gerne have den gemmer det hele...



Gider du lige uddybe det? Mener du i stedet for unix_timestamp? For jeg vil faktisk gerne have den gemmer det hele...


Ja, time() er sekunder efter 1. januar 1970, og date() kan lave disse sekunder om til hvad man nu ønsker :-)

Så du skal bare gemme time() i stedet for unix_timestamp(now())

Det er det nemmeste :-)


--
Ronni Egeriis - http://sqdev.dk/
Co-Admin



Hmm, når jeg bare udskifter de to, vil den slet ikke gemme dataene i basen... skal det ikke stadigvæk være timestamp i mysql?



time() er php, ikke sql. Du skal derfor bruge noget ala:

"sql sætning" . time() . "resten af sql"



time() er php, ikke sql. Du skal derfor bruge noget ala:

"sql sætning" . time() . "resten af sql"


Ja naturligvis, jeg tænkte ikke lige over at det var SQL du andet. Jeg undskylder :-)


--
Ronni Egeriis - http://sqdev.dk/
Co-Admin



time() er php, ikke sql. Du skal derfor bruge noget ala:

"sql sætning" . time() . "resten af sql"

Ja naturligvis, jeg tænkte ikke lige over at det var SQL du andet. Jeg undskylder :-)


--
Ronni Egeriis - http://sqdev.dk/
Co-Admin



Aah ok. Jeg bruger dog NOW() i mysql_query i stedet, og gemmer i DATETIME. Jeg har efterhånden fået 10 forskellige bud på hvordan man så skal formatere det, men der har været noget i vejen hver gang :-(
Jeg smider gerne 85 points oveni, hvis der er en der gider tage et kig på filerne:
http://www.jetsmarkskakklub.dk/forside.php.txt
http://www.jetsmarkskakklub.dk/news_add.php.txt
og give mig en færdig kode...

Har efterhånden brugt et utal af timer på det skide date-værk...

----
It's not a bug, it's a feature!



Aah ok. Jeg bruger dog NOW() i mysql_query i stedet, og gemmer i DATETIME.

Hvis du brugte DATETIME og vil ændre til timestamp, skal du huske at ændre kolonnens typpe til tal i stedet for datetime. Du skal også huske at ændre alle de andre værdier der allerede står i din db så de bliver til timestamp-form



Jeg har slettet alle entries i basen nu (havde også lndret formatet før...jeg vil dog ikke skifte til timestamp, datetime er helt fint).
Jeg tilføjede så lige to nyheder (http://www.jetsmarkskakklub.dk/forside.php)
I min base er tiderne gemt som
2003-12-15 22:26:32
2003-12-15 22:26:17
så det er jo fint nok. Det må gå galt med formateringen når jeg vil kalde det...



Fiksede det med
$sql = mysql_query("SELECT *, DATE_FORMAT(`date`, '%d.%m.%y') AS date FROM etc.
og henter med
<span class="nyhed-dato">('.$row['date'].')</span>

----
It's not a bug, it's a feature!



t