Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 00:36 Der er 24 kommentarer og
1 løsning

date() hvorfor giver den forkerte værdier?

hej

Jeg bruger følgende funktion til at finde den nuværende dato med:
date("d-m-Y", time())

men hvad jeg får smidt tilbage i hovedet er datoen 20-10-2011 hvilket jo ikke ligefrem er i dag...eller i morgen for den sags skyld...gør jeg et eller andet forkert..

har også prøvet med date("d-m-Y") men det virker lige så dårligt

mvh

thecoder.dk
Avatar billede martinbk Nybegynder
11. oktober 2003 - 00:38 #1
et vildt gæt, indstil tiden på serveren ? :-)
Avatar billede olebole Juniormester
11. oktober 2003 - 00:44 #2
<ole>

Det var lige i (holy)bull's eye. Det er garanteret servertiden, der er forkert.
date( "d-m-Y", time() ); skal returnere: 11-10-2003

/mvh
</bole>
Avatar billede martinbk Nybegynder
11. oktober 2003 - 01:07 #3
hvis du kører en *NIX server, og har adgang til root accounten, kan du via NTP (Network Time Protocol) opdaterer tiden på din server, simpelt skriv

ntpdate ntp.nasa.gov
Avatar billede fangel Nybegynder
11. oktober 2003 - 10:57 #4
holybull -> sørens... mit ur var -22.543120 sekunder forkert... ;) | hvorfor har jeg aldrig leget med den før ;)

Morten
Avatar billede martinbk Nybegynder
11. oktober 2003 - 11:29 #5
heheh morten, jeg har bare smit den i cron til en gang i timen, så mit ur er vist normalt rimelig præcist :)
Avatar billede fangel Nybegynder
11. oktober 2003 - 11:38 #6
hæhæ - nu jeg jeg nede på under 0.1 sekund for hver gang jeg laver det (der må være en servere tættere på - så man for lavere latency)

Morten
Avatar billede martinbk Nybegynder
11. oktober 2003 - 11:39 #7
Avatar billede martinbk Nybegynder
11. oktober 2003 - 11:40 #8
clock.netcetera.dk
clock2.netcetera.dk
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 11:40 #9
det er lidt underligt da jeg har min side liggende på 1go.dk...

skulle tro deres servertid ville være nogenlunde præcis
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 11:41 #10
holybull hvordan bruger jeg så dem?
Avatar billede fangel Nybegynder
11. oktober 2003 - 11:44 #11
thocoder -> du skal have adgang til serverens root konto for at kunne - send en mail til 1go og forklar prob...

holybull -> kan jeg måske få din MSN? (mangler nogle jeg kan diskutere Linux med - min viden er nemli' stadig i sin vorden, og man lære bedst ved at diskutere om det)

Morten
Avatar billede martinbk Nybegynder
11. oktober 2003 - 11:47 #12
self.

hest@karmafamily.dk

gammel addresse selve addressen virker ikke mere men jeg gider ikke oprette ny MSN
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 11:55 #13
hmm det er slet ikke funktionen der giver det forkerte tilbage...prøvede lige en print...det er når jeg gemmer datoen i mysql:

$mysqlStatement = "UPDATE Nyheder SET News='" . $News . "', Topic='" . $Topic . "', dteDate =" . date("d-m-Y", time()) . " WHERE ID='" . $ID . "'";

i mysql har jeg feltet dteDate til at være af typen Date med nulværdi sat til nej...
Avatar billede fangel Nybegynder
11. oktober 2003 - 11:56 #14
har tilføjet dig (undskyld for fsck'd msn add - fra gammel tid)

Morten
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 11:56 #15
ups der står dteDate ='" . date("d-m-Y", time()) . "'
Avatar billede martinbk Nybegynder
11. oktober 2003 - 11:58 #16
prøv og split det lidt mere op så
$date = date("d-m-Y", time());
mysqlStatement = "UPDATE Nyheder SET News='$News', Topic='$Topic', dteDate ='$date' WHERE ID='$ID'";
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 12:00 #17
hmm stadig samme dato
Avatar billede martinbk Nybegynder
11. oktober 2003 - 12:02 #18
og hvilken type felt er dit dteDate felt ?
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 12:29 #19
"i mysql har jeg feltet dteDate til at være af typen Date med nulværdi sat til nej..."
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 12:30 #20
den gemmer datoen som xxxx-xx-xx
Avatar billede martinbk Nybegynder
11. oktober 2003 - 12:37 #21
det er jo så fordi du forsøger at sætte et dansk dato stempel i et engelsk felt

hvis du vil bruge date felttypen skal du ændre scriptet til date("Y-m-d", time());

alternativt kan ændre den til en almindelige varchar og så indsætte time(); direkte så har du tiden i sekunder, så formaterer du blot når du hiver ud af din tabel f.eks. $dato = date("d-m-Y", $row[tidsfelt]);
Avatar billede martinbk Nybegynder
11. oktober 2003 - 12:39 #22
generelt synes jeg altid det er en god idé at holde datoer i en tabel i unix timestamp format, fordi du så har uendelige mugligheder for selv at formaterer den til hvad du skal bruge den til
Avatar billede thecoder.dk Nybegynder
11. oktober 2003 - 12:44 #23
det havde du sørme ret i :) takker mange gange... smid lige et svar
Avatar billede martinbk Nybegynder
11. oktober 2003 - 12:48 #24
jamen svar da :)
Avatar billede olebole Juniormester
11. oktober 2003 - 20:22 #25
Et andet alternativ er måske helt at undlade at formatere dit timestamp, før det skal skrives ud. Det er ofte meget enklere at bruge et timestamp i databasen, hvis det ikke er formateret.
Du kan blot nøjes med at indsætte resultatet af 'time()' i et INT felt  :)
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