Avatar billede nicocarlos Nybegynder
22. juni 2005 - 10:35 Der er 13 kommentarer og
1 løsning

kalender regne spørgsmål

Hejsa
Jeg er ved at lave en kalender hvor man skal vælge en periode f.eks.

08082005 - 12082005 - Så skal jeg regne ud at det er 4 dage.

Men jeg får virkelig et problem når vi så kommer op til de sidste dage i måneden. f.eks. 27082005-04092005 så skal det på en eller anden måde først finde ud af hvor mange dage der er i den pågældende månded = 08 (de 2 cifre står nr. 3 og 4 i tal rækkefølgen)

Så det er faktisk 2 spørgsmål regne på de 2 først cifre og sikre at den også kan regne sidst i måneden?

Håber der er en som kan hjælpe
Avatar billede drbean Nybegynder
22. juni 2005 - 11:20 #1
Har du kigget på date funktionen i PHP. Den kan en masse smarte ting.
http://php.net/date
Avatar billede hmortensen Nybegynder
22. juni 2005 - 11:26 #2
Hvis det er antal dage imellem du vil have, kan det gøres således:
function AntalDage($start, $slut)
{
    return (strtotime($slut)-strtotime($start))/86400;
}

echo AntalDage("20050827", "20050904");
echo AntalDage("2005-06-08", "2005-07-05");
Avatar billede pallotto Nybegynder
22. juni 2005 - 12:05 #3
Jeg kan kun støtte hmortensen's script.
Sådan ville jeg også have gjort det.
Avatar billede nicocarlos Nybegynder
22. juni 2005 - 12:33 #4
Jamen jeg glemte at nævne at jeg ville også meget gerne finde dagene imellem de 2, f.eks. så den:
20050827
20050828
20050829
20050830
20050901
20050902
20050903
20050904

Så man måske på en eller anden måde kunne lave en while sådan så den printede de antal dage (altså ikke antal, men mere hvilke det er)
Avatar billede hmortensen Nybegynder
22. juni 2005 - 13:31 #5
Måske sådan her:
function Dage($start, $slut)
{
    for ($x=0;$x<=(strtotime($slut)-strtotime($start))/86400;$x++)
        $arr[] = date("Y-m-d", strtotime($start)+(86400*$x));
    return $arr;
}

Den ligger dagene ind i et array, som du så kan udskrive med en foreach.
$var = Dage("20050606", "20050707");
foreach ($var AS $val)
    echo $val."<br />\n";
Avatar billede nicocarlos Nybegynder
24. juni 2005 - 09:39 #6
det ser godt ud hmortensen, kan man evt smide de dage ind i en mysql db? Altså f.eks. ind i en tabel de skal self ligge med hver sit id.
Avatar billede hmortensen Nybegynder
24. juni 2005 - 09:42 #7
function Dage($start, $slut)
{
    for ($x=0;$x<=(strtotime($slut)-strtotime($start))/86400;$x++)
        mysql_query("INSERT INTO tabel (dato) VALUES ('".date("Y-m-d", strtotime($start)+(86400*$x))."')");
}
Avatar billede nicocarlos Nybegynder
24. juni 2005 - 10:03 #8
function Dage($start, $slut)
{
    for ($x=0;$x<=(strtotime($slut)-strtotime($start))/86400;$x++)
        mysql_query("INSERT INTO v_dato (dato) VALUES ('".date("Y-m-d", strtotime($start)+(86400*$x))."')");
}
//Den ligger dagene ind i et array, som du så kan udskrive med en foreach.
$var = Dage("20050606", "20050707");

det er hvad jeg har nu. Men i min v_dato table. Ligger der id som er auto incr, dag som er dem der skal komme herfra og nr som jeg også gerne skulle indsætte har du nogen ide om hvordan jeg får indsat det?
Avatar billede nicocarlos Nybegynder
24. juni 2005 - 10:08 #9
ehm jeg har fundet ud af det men dato bliver ikke sat ind som:
20050606
Men som:
2005
Avatar billede hmortensen Nybegynder
25. juni 2005 - 12:37 #10
Hvad felt type er dato ?
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 21:41 #11
int
Avatar billede hmortensen Nybegynder
28. juni 2005 - 11:38 #12
Har du en længde på feltet på 4 ?
Avatar billede nicocarlos Nybegynder
11. juli 2005 - 21:09 #13
har fundet ud af det tak bare lige svar
Avatar billede hmortensen Nybegynder
11. juli 2005 - 22:16 #14
Ok
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