Avatar billede floetti Nybegynder
13. maj 2003 - 16:31 Der er 16 kommentarer og
1 løsning

Optælling af dage med PHP

Kan man få PHP til at tælle dagerne op, hvis jeg har fire <select> forme, hvor de første to er "dato" og "måned", de sidste er også "dato" og "måned". Så når en vælger et dato og måned i de første to forme, og så en anden dato og måned i de sidste to, så skal PHP telle op, hvor mange dage der er imellem

Example:

start: 20 mai
slut: 3 juni

Dage fra 20 mai til 3 juni er 14 dage... !

Håber I forstår ??

På forhånd tak

-> Floetti
Avatar billede schaefner Juniormester
13. maj 2003 - 16:36 #1
Utestet:

<?php
$startdato = strtotime("2001-01-12");
$slutdato = strtotime("2001-12-24");
$diff = $startdato-$slutdato;
$dage = $diff/86400;
echo "$dage";
?>
Avatar billede schaefner Juniormester
13. maj 2003 - 16:37 #2
Lille rettelse:
$dage = floor($diff/86400);
Avatar billede schaefner Juniormester
13. maj 2003 - 16:39 #3
Endnu en lille rettelse:
$diff = $slutdato-$startdato;
Avatar billede schaefner Juniormester
13. maj 2003 - 16:41 #4
Regner med at du selv kan lave select-boxene:

<?php
$startdato = strtotime("2003-".$_POST['start_maaned']."-".$_POST['start_dag']);
$slutdato = strtotime("2003-".$_POST['slut_maaned']."-".$_POST['slut_dag']);
$diff = $startdato-$slutdato;
$dage = $diff/86400;
echo "$dage";
?>
Avatar billede floetti Nybegynder
13. maj 2003 - 16:47 #5
Ja det klarer jeg, skal lige se om det virker ;)
Avatar billede floetti Nybegynder
13. maj 2003 - 16:50 #6
Hej ! om jeg nu vil hava at det også skal være muligt at vælge år, så kan jeg skrive

$startdato = strtotime(".$_POST['start_aar']."-".$_POST['start_maaned']."-".$_POST['start_dag']);

ik ?
Avatar billede schaefner Juniormester
13. maj 2003 - 16:52 #7
$startdato = strtotime($_POST['start_aar']."-".$_POST['start_maaned']."-".$_POST['start_dag']);
Avatar billede floetti Nybegynder
13. maj 2003 - 17:04 #8
Thank you ;)

Nu kører det, svar til bage og så giver jeg points ;)

-> Floetti
Avatar billede schaefner Juniormester
13. maj 2003 - 17:05 #9
Var så lidt :)

/Jesper Sørensen
Avatar billede floetti Nybegynder
13. maj 2003 - 17:09 #10
Hej! må jeg lige spørge om et ting til ??

Hvis jeg nu vil have at der også kan vælges timer fra start til slut, skal jeg lave meget om på scriptet? kunne godt tænke mig det !
Avatar billede schaefner Juniormester
13. maj 2003 - 17:13 #11
$dage = floor($diff/86400);
$timer = floor($diff/3600);
Avatar billede schaefner Juniormester
13. maj 2003 - 17:16 #12
og så:

$startdato = strtotime($_POST['start_aar']."-".$_POST['start_maaned']."-".$_POST['start_dag'].$_POST['start_time'].":00:00");
$slutdato = strtotime($_POST['slut_aar']."-".$_POST['slut_maaned']."-".$_POST['slut_dag'].$_POST['slut_time'].":00:00");
Avatar billede floetti Nybegynder
13. maj 2003 - 17:19 #13
Ok! hvordan finder PHP så ud af at sætte det sammen med dagene, jeg havde tænkt mig at om man valgte f.eks.

start
13 mai kl. 13.00
slut
15 mai kl. 9.00

så ville det blive rundet op til 2 dage istedet for 1 dage og 20 timer !

Kan det lade sig gøre?
Avatar billede schaefner Juniormester
13. maj 2003 - 17:21 #14
Hvorfor ikke bare lade være med at tage timetallet med i beregningen?
Avatar billede floetti Nybegynder
13. maj 2003 - 17:23 #15
Jo, det kan man vist godt !

Men tak for hjælpen, håber at det kan være en anden gang, du kan hjælpe ;)

Hilsen
Floetti
Avatar billede schaefner Juniormester
13. maj 2003 - 17:24 #16
Du kan jo sagtens lade brugeren vælge timetallet, men når du regner antal dage ud, så behøver du jo ikke have den med.
Avatar billede floetti Nybegynder
13. maj 2003 - 17:26 #17
OK ! tak ;)
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