Avatar billede webcreator Nybegynder
22. august 2003 - 20:09 Der er 14 kommentarer og
1 løsning

MySQL's Datetime er ikke samme format som PHP's time()

Hej.

Jeg får flg. udskrift ved :

MySQL's datetime :20030822195006
PHP's time() : 1061579066

Jeg vil gerne kunne regne på disse størrelser. Men det er svært, når den ene ikke indeholder et årstal. Kan I hjælpe?
Avatar billede whatever Nybegynder
22. august 2003 - 20:12 #1
PHP funktionen time() returnerer en timestamp værdi. Antallet af sekunder fra 1. januar 1970 så vidt jeg husker. timestamp værdien kan nemt formateres med PHP funktionen date().

Jeg benytter altid PHP's timestamp værdi, når jeg skal gemme datoer i databaser, filer etc. Du kan f.eks. lave et varchar felt, og smide værdien af time() der ned i.
Avatar billede webcreator Nybegynder
22. august 2003 - 20:13 #2
Sorry, det var også timestamp jeg mente.

Men der er stadig et årstal foran MySQL's værdi.
Avatar billede whatever Nybegynder
22. august 2003 - 20:14 #3
Følgende: date("YmdHis",time()) giver dig den aktuelle dato/tid i samme format som mysql's datetime.
Avatar billede whatever Nybegynder
22. august 2003 - 20:16 #4
datetime ligger i formatet YYYYMMDDHHMMSS, mens timestamp jo er sekunder. Så de kan ikke direkte sammenlignes. Den ene skal omregnes før det kan lade sig gøre. Dette gør du f.eks. med date().
Avatar billede webcreator Nybegynder
22. august 2003 - 20:24 #5
det var en fejl. det lå i timestammp.

men se lige på forskellen..
Avatar billede webcreator Nybegynder
22. august 2003 - 20:40 #6
ok - kort og godt :

Jeg får flg. udskrift ved :

MySQL's timestamp :20030822195006
PHP's time() : 1061579066

Som det ses, står der 2003 foran MySQL's værdi.
Jeg vil gerne kunne regne frem og tilbage mellem disse værdier - men det er en smule svært, når tallene ikke er i samme format.

Hvordan kan jeg regne mellem databasen og den nuværende tid ?
Avatar billede whatever Nybegynder
22. august 2003 - 20:46 #7
Så vidt jeg kan forstå udfra mysql-manualen og dit timestamp fra mysql, er det i formatet YYYYMMDDHHMMSS. Med date() funktionen i PHP kan du konvertere værdien af time(), til en værdi i samme format som timestampen fra mysql. Dette gør du med date("YmdHis",time())
Avatar billede webcreator Nybegynder
22. august 2003 - 20:48 #8
IC. Prøver jeg lige :)
Avatar billede detox Nybegynder
22. august 2003 - 21:58 #9
Mysql indeholder en masse gode funktioner til beregning, omregning og formatering af tid/dato. Se fx denne artikel:
http://www.devshed.com/Server_Side/MySQL/DateArithmetic/page1.html
Avatar billede webcreator Nybegynder
22. august 2003 - 22:08 #10
Whatever > Virkede. Smid svar. Og tak :)

- Detox > Takker.
Avatar billede detox Nybegynder
22. august 2003 - 22:16 #11
Du kan osse hive det ud i samme format som php's time():
SELECT UNIX_TIMESTAMP(timestamp_felt) FROM tabel
Avatar billede whatever Nybegynder
22. august 2003 - 22:51 #12
svar
Avatar billede webcreator Nybegynder
22. august 2003 - 23:13 #13
Detox > Afsætter lige 5 points mere. Smid et svar :)
Avatar billede detox Nybegynder
22. august 2003 - 23:14 #14
Nevermind, det er ok. c",)
Avatar billede webcreator Nybegynder
23. august 2003 - 07:59 #15
takker så :)
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