Avatar billede heyn Nybegynder
16. januar 2014 - 11:45 Der er 5 kommentarer og
1 løsning

TIMESTAMP bliver til dato?

Hej Eksperter.

Jeg er ikke sikker på om mit spørgsmål mest drejer sig om MySQL el. PHP men nu prøver jeg her.

Jeg har en side hvor man skal indføre dato i formatet YYYY-MM-DD.
Men hvordan ændrer jeg dette til formatet UNIX_TIMESTAMP som et tal.

Når jeg formaterer min tabel i MySQL har jeg også problemer. Selv om jeg i PHPMyAdmin definerer typen på en kolonne som TIMESTAMP får jeg alligevel formatet YYYY-MM-DD i stedet for et tal når jeg udfører SELECT, og PHPMyAdmin viser resultatet som YYYY-MM-DD HH:MM:SS.

Årsagen til at det skal være i formatet UNIX_TIMESTAMP og ikke YYYY-MM-DD HH:MM:SS skyldes at andre sites i anden sammenhæng skal anvende UNIX_TIMESTAMP.

Håber nogle har et tip.

Venligst Christian
Avatar billede Slater Ekspert
16. januar 2014 - 12:08 #1
Du kan få YYYY-MM-DD (ISO-format) til Unix timestamp med strtotime()

Et MySQL TIMESTAMP er ikke det samme som et Unix timestamp, så det er helt meningen at det skal komme ud i det format. Det kan du ændre ved at køre MySQL funktionen UNIX_TIMESTAMP på datoen, altså

SELECT UNIX_TIMESTAMP(tid) FROM ...
Avatar billede heyn Nybegynder
16. januar 2014 - 12:33 #2
Og hvad når man vil køre UPDATE og INSERT?
Avatar billede Slater Ekspert
16. januar 2014 - 13:58 #3
Enten FROM_UNIXTIME i SQL, f.eks. sådan

UPDATE table SET time=FROM_UNIXTIME($timestamp)

Eller du kan bruge date() i php til at lave det om til MySQLs format, sådan:

date('Y-m-d H:i:s', $timestamp);
Avatar billede heyn Nybegynder
17. januar 2014 - 08:28 #4
Mange tak.
Smid et svar.

Venligst Christian

P.s. Et lille opfølgende spørgsmål:
Kan man slet ikke definere formatet UNIX TIMESTAMP i MySQL?
Avatar billede Slater Ekspert
17. januar 2014 - 08:51 #5
Svar.

Og jo, det kan du sagtens. Du skal bare bruge typen INT - og husk at gøre den unsigned.
Avatar billede heyn Nybegynder
17. januar 2014 - 08:52 #6
Fandt selv svaret:

Nej - Når man anvender datatypen TIMESTAMP i MySQL er det ikke UNIX TIMESTAMP men man kan udføre de forskellige UNIX_TIMESTAMP funktioner og funktionen NOW() på den fordi datatypen gemmes internt som UNIX TIMESTAMP (modsat f.eks. SQLite).
F.eks Oracle har datatypen UNIX TIMESTAMP.

Smid et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester