Avatar billede BTEngineer Novice
21. januar 2008 - 22:11 Der er 18 kommentarer og
1 løsning

Hvorfor virker denne kode ikke?

Hej.

Jeg kan ikke få denne kode til at fungerer:
$dage = floor((time()-mktime(0,0,0,01,1,2008))/(60*60*24));

echo "Det er $dage dage siden det var den 1 januar 2008";

Koden virker fint sådan der.
Den skriver "Det er 20 dage siden det var den 1 januar 2008".

Men ændrer jeg så '01' til '02', så skriver den '-11 dage'.

Hvorfor gør den det ?
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:14 #1
Der er vel 11 dage til 1. februar.
Avatar billede BTEngineer Novice
21. januar 2008 - 22:17 #2
Nej.
0,0,0,01,1,2008

Det betyder jo sekunder, minutter, timer, dag, måned, år.

Den skal regne FRA den indskrevne dato TIL dags dato.
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:18 #3
Nej, det betyder det ikke. Læs: http://php.net/mktime
Avatar billede jakobdo Ekspert
21. januar 2008 - 22:19 #4
Jeg mener der er forskel på 02 og 2
Prøv at nøjes med et 2-tal og ikke 02
Avatar billede BTEngineer Novice
21. januar 2008 - 22:24 #5
Tak.
Smid et svar.
Avatar billede BTEngineer Novice
21. januar 2008 - 22:25 #6
Og ja..
Det var både fordi jeg havde byttet rundt på dag og måned samt også fordi jeg skrev 02.

Smid et svar begge to..
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:25 #7
Ingen point til mig, tak. Du er nu heller ikke den første, der har lavet lige den fejl ... ;)
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:26 #8
Ligemeget med 2 og 02 - det er det samme. Man man kan blive overrasket over hvad 011 betyder.
Avatar billede jakobdo Ekspert
21. januar 2008 - 22:27 #9
Svar...
Avatar billede jakobdo Ekspert
21. januar 2008 - 22:27 #10
erikjacobsen, 02 og 2 er netop ikke det samme i mktime().
Avatar billede BTEngineer Novice
21. januar 2008 - 22:29 #11
Nej.. 02 og 2 er ikke det samme.
Den tager åbenbart højde for det når den dividerer og ganger..
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:30 #12
02 og 2 er det samme.
Avatar billede jakobdo Ekspert
21. januar 2008 - 22:30 #13
erik: Jeg tager fejl med hensyn til mktime() og 02 og 2. Jeg har dog leget med 0 foran 1-9 og det gav fejl i forbindelse med noget tids/dato noget, kan dog ikke huske hvad.
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:35 #14
Det er et nørde-PHP-spørgsmål:

Hvad udskriver:  print 08;

Og hvis man kan svare, er man PHP-nørd. ;)

Men lige for 2 og 02 er det li'møj.
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:38 #15
Eller en lidt sjovere variant:

print 01*02*03*04*05*06*07*08*09*10;
Avatar billede jakobdo Ekspert
21. januar 2008 - 22:38 #16
08 er det noget octal eller noget?

Erik: Jeg har altså haft noget kode hvor 2 og 02 gav 2 forskellige resultater, kan dog ikke huske det, men skal nok se om ikke jeg kan finde det. :o)
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:41 #17
;) Prøv gerne, men jeg tvivler. Og det har noget med oktale tal at gøre. Og cifrene 8 og 9 findes i oktale tal.
Avatar billede erikjacobsen Ekspert
21. januar 2008 - 22:42 #18
Ups, min ikke-tast virkede ikke:  Og cifrene 8 og 9 findes *ikke* i oktale tal.
Avatar billede jakobdo Ekspert
21. januar 2008 - 22:45 #19
:o)
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