Avatar billede netroam Nybegynder
28. april 2009 - 11:03 Der er 9 kommentarer og
1 løsning

Dato afgrænsning i select box

Jeg har forsøgt utallige gange at finde en funktion, der vil give mig en række datoer baseret på en start- og en slutdato. Jeg kan bare ikke finde noget, der fungerer til mit formål.

Det jeg ønsker er følgende (eksempel følger)

$Startdato = '2009-04-28';
$Slutdato = '2009-05-05';

Dropdown-boxen skal så give mig følgende muligheder:

2009-04-28
2009-04-29
2009-04-30
2009-05-01
2009-05-02
2009-05-03
2009-05-04
2009-05-05

Hvordan laves den funktion? Nogen, der har et godt eksempel, der kan bruges?

Pft.
Avatar billede jakobdo Ekspert
28. april 2009 - 11:53 #1
Sådan:

<?php
//http://www.eksperten.dk/spm/873192

$startdato = '2009-04-28';
$slutdato  = '2009-05-05';

$day = 60 * 60 * 24; //sekunder * minutter * timer

$startunix = strtotime($startdato);
$slutunix  = strtotime($slutdato);

echo '<select name="dato" size="1">';
for($i = $startunix; $i <= $slutunix; $i+=$day){
    echo '<option value="'.date('Y-m-d',$i).'">'.date('Y-m-d',$i).'</option>';
}
echo '</select>';

?>
Avatar billede erikjacobsen Ekspert
28. april 2009 - 12:04 #2
jakobdo: dit script giver sjove resultater, når vi gør over til normaltid igen:

2009-10-30
2009-10-31
2009-11-01
2009-11-01
2009-11-02
2009-11-03
Avatar billede erikjacobsen Ekspert
28. april 2009 - 12:04 #3
Ja, hvadenten vi "gør" eller "går" ;)
Avatar billede jakobdo Ekspert
28. april 2009 - 12:27 #4
erikjacobsen: Hvorfor gør eller går det det ? :o) (altså giver sjove resultater, er der noget jeg ikke har tænkt over?)
Avatar billede netroam Nybegynder
28. april 2009 - 14:29 #5
Det virker helt perfekt for mig. Jeg oplever ikke problemet med d. 1. november, så jeg er fuldt ud tilfreds.

Smider du et svar?
Avatar billede jakobdo Ekspert
28. april 2009 - 14:53 #6
Erik: Min server laver ikke fejl over første november. :o/

Du får et var.
Avatar billede erikjacobsen Ekspert
28. april 2009 - 14:53 #7
Det er noget med sommertid, og at du implicit vælger midnat - det kan ved sommer/vinter-tid rykke en time, og dermed en dag. Et hack er at tage kl. 12.00 middag i stedet for.

Det kan vist også afhænge af indstillinger på serveren.
Avatar billede erikjacobsen Ekspert
28. april 2009 - 14:54 #8
Avatar billede erikjacobsen Ekspert
28. april 2009 - 14:55 #9
Og koden på pågældende link:

<?php
//http://www.eksperten.dk/spm/873192

$startdato = '2009-10-01';
$slutdato  = '2009-12-05';

$day = 60 * 60 * 24; //sekunder * minutter * timer

$startunix = strtotime($startdato);
$slutunix  = strtotime($slutdato);

//echo '<select name="dato" size="1">';
for($i = $startunix; $i <= $slutunix; $i+=$day){
//    echo '<option value="'.date('Y-m-d',$i).'">'.date('Y-m-d',$i).'</option>';
      echo date('Y-m-d',$i)."<br>";
}
//echo '</select>';

?>
Avatar billede jakobdo Ekspert
28. april 2009 - 21:03 #10
Takker for point og altid godt at få belyst evt. fejl i ens kode. :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