Avatar billede blach Nybegynder
17. oktober 2005 - 14:46 Der er 17 kommentarer og
1 løsning

Dato fra og til

Jeg er ved at lave en formular hvor man vælger:
Start dato (dd - mm - åååå) i dropdown
Antal dage (1, 2, 3 osv) i dropdown

1. Er der mulighed for at lave den første dropdown med dd dynamisk? Så den skifter antal dage, for hvilken måned som er valgt... (der er ikke 31 dage i alle måneder)


2. Efter valg, vil jeg gerne have en løkke som gennemløber de valgte dage en efter en og tjekker for årstal og om de ligger indenfor et givent dato-interval.
Avatar billede dmdisco Nybegynder
17. oktober 2005 - 14:57 #1
date(t) er antalet af dage i en måned
Avatar billede dmdisco Nybegynder
17. oktober 2005 - 14:57 #2
Avatar billede hmortensen Nybegynder
17. oktober 2005 - 15:10 #3
Hvis start dato er: 25-07-2005 og antal er 7, hvad skal der så ske ?
Jeg forstår ikke helt hvor du vil hen.
Avatar billede blach Nybegynder
17. oktober 2005 - 15:17 #4
Okay.. hvorfor virker dette ikke?

  $start_dag_en = $_POST['start_aar']."-".$_POST['start_maaned']."-".$_POST['start_dag'];
  $slut_dag_en_uns = time('$start_dag_en') + (60 * 60 * 24 * $_POST['antal_dage']);
  $slut_dag_en_sor = date("Y-m-d",$slut_dag_en_uns);


Den tager ikke hensyn til start dato - men kører bare fra dags dato!
Denne kode er måske forkert ? time('$start_dag_en')
Avatar billede hmortensen Nybegynder
17. oktober 2005 - 15:19 #5
Sådan her:
$slut_dag_en_uns = strtotime($start_dag_en) + (60 * 60 * 24 * $_POST['antal_dage']);
Avatar billede blach Nybegynder
17. oktober 2005 - 15:45 #6
Fino..
Den beregner dagene fint, bortset fra hvis jeg vælger f.eks. d. 30/10 og ligger 3 dage til, så sætter den slut dato til d. 1/11. Det skulle jo være d. 2/11.!
Hvis jeg derimod vælger d. 31/10 og ligger 3 dage til, så skriver den d. 3/11.
Avatar billede blach Nybegynder
17. oktober 2005 - 16:44 #7
Som om at den tager d. 30. for 2 dage.. Hvad kan det være?
Avatar billede blach Nybegynder
17. oktober 2005 - 17:01 #8
Mht. dynamisk dropdown af datoer, fandt jeg denne tråd:
http://www.eksperten.dk/spm/576221
Avatar billede blach Nybegynder
17. oktober 2005 - 17:08 #9
I må hjælpe mig:
Hvis jeg vælger sætter start dato til 30-10-2005 og vælger 2 dage, så går den kun frem til d. 31-10-2005 :-(
Avatar billede hmortensen Nybegynder
17. oktober 2005 - 18:30 #10
Prøv sådan her:
$dato = "2005-10-30";
$antal = 2;
echo date("Y-m-d", strtotime("+{$antal} days", strtotime($dato)));
Avatar billede blach Nybegynder
17. oktober 2005 - 18:55 #11
Ja, det var bedre :) Hvad var forskellen? Den udregning 60 * 60 * 24 * $_POST['antal_dage']); virkede da ikke så..

Har denne kode nu:
  $slut_dag_en_uns = strtotime("+{$_POST['antal_dage']} days", strtotime($start_dag_en));
Avatar billede hmortensen Nybegynder
17. oktober 2005 - 19:18 #12
Kan jeg desværre ikke fortælle dig, men har selv haft problemer med sådanne udregninger før, og har derfor brugt strtotime().
Avatar billede blach Nybegynder
17. oktober 2005 - 19:47 #13
Hvad gør jeg så, hvis jeg skal gennemløbe hver eneste af datoerne i det valgte interval og tjekke om de ligger mellem 1/1-2005 og 1/3-2005 f.eks.?
Altså en for-løkke f.eks., skal bare lige hjælpes igang :)
Avatar billede hmortensen Nybegynder
17. oktober 2005 - 20:46 #14
Noget i den her retning.

$start = strtotime("2005-01-01");
$slut = strtotime("2005-03-01");

$dato = strtotime("2004-12-29");

for ($x = 0; $x < $antal; $x++)
{
  if ((strtotime("+{$x} days", $dato) >= $start) && (strtotime("+{$x} days", $dato) <= $slut))
  {
    //Inden for interval
  }
}
Avatar billede blach Nybegynder
17. oktober 2005 - 21:08 #15
Okay, vil jeg lige teste :)
Avatar billede blach Nybegynder
18. oktober 2005 - 14:18 #16
Virkede fint - tak for hjælpen hmortensen... Ligger du et svar?
Avatar billede hmortensen Nybegynder
18. oktober 2005 - 14:50 #17
Det var så lidt.
Avatar billede blach Nybegynder
19. oktober 2005 - 11:15 #18
Måske du kan hjælpe her også?
http://www.exp.dk/spm/657321
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