Avatar billede thorus Nybegynder
05. marts 2004 - 11:36 Der er 18 kommentarer og
1 løsning

List datoer imellem 2 datoer

Jeg har en start dato og en slut dato.

eks.
10.02.2004 - 12.04.2004

jeg vil gerne ud af det have have en liste med alle datoer imellem de dage.

10 11 12 13 14 15 16 17 18 19 20 etc.....
Avatar billede thorus Nybegynder
05. marts 2004 - 11:42 #1
Ingen som har et svar?
Avatar billede detox Nybegynder
05. marts 2004 - 11:52 #2
Prøv:

<?
$start = '10.02.2004';
$slut = '12.04.2004';
define('DAG', 60*60*24);
$starttid = tid($start);
$sluttid = tid($slut);
for ($i=$starttid;$i<=$sluttid;$i+=DAG) {
    echo date('d.m.Y', $i)."<br />";
}

function tid ($dansk) {
    list ($dag, $maaned, $aar) = explode('.', $dansk);
    $tid = mktime(12,0,0,$maaned,$dag,$aar);
    return $tid;
}
?>
Avatar billede detox Nybegynder
05. marts 2004 - 12:21 #3
Grundet overgangen til sommertid, skal du lige ændre:

for ($i=$starttid;$i<=$sluttid;$i+=DAG) {

til:

for ($i=$starttid;$i<=$sluttid+3600;$i+=DAG) {
Avatar billede thorus Nybegynder
05. marts 2004 - 13:47 #4
Mange tak,

Et lille sp?

Hvis jeg har et projekt som køre fra:
$start = '10.02.2004';
$slut = '12.04.2004';

og det projekt har flere opgaver:
eks. et fra 22.02.204 til 10.03.2004

Jeg vil så lave en ehile løkke som laver det samme som før men den skal nu ikke skrive dato'en men den skal lave en farve når man kommer til det interval som opgaven  er i. '

Projekt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Opgave1 8-13
              xxxxxxxxxxxxxxx           

Opgave2 13 - 18
                          xxxxxxxxxxxxxxxxx
Avatar billede thorus Nybegynder
05. marts 2004 - 13:49 #5
flere 60 point eller flere give for et svar
Avatar billede detox Nybegynder
05. marts 2004 - 14:14 #6
Her et eksempel på hvordan du principielt kan løse det. Du kan jo så tilføje flere farver i $col array'et eller vælge at vise små gif's eller lign.:

<?
$start = '10.02.2004';
$slut = '12.04.2004';
$opgstart[0] = '22.02.2004'; // Opgave 1
$opgslut[0] = '10.03.2004';
$opgstart[1] = '01.03.2004'; // Opgave 2
$opgslut[1] = '20.03.2004';
$opgstart[2] = '14.02.2004'; // Opgave 3
$opgslut[2] = '12.03.2004';
$col = array('red','blue','green');
define('DAG', 60*60*24);
$starttid = tid($start);
$sluttid = tid($slut);
for ($i=0;$i<count($opgstart);$i++) {
    $opgstarttid[$i] = tid($opgstart[$i]);
    $opgsluttid[$i] = tid($opgslut[$i])+3600;
}
for ($i=$starttid;$i<=$sluttid+3600;$i+=DAG) {
    echo date('d.m.Y', $i);
    foreach ($opgstarttid as $key=>$val) {
        if ($opgstarttid[$key] <= $i && $opgsluttid[$key] >= $i) {
            echo "<span style='color: ".$col[$key].";'> O</span>";
        }
    }
    echo "<br />";
}

function tid ($dansk) {
    list ($dag, $maaned, $aar) = explode('.', $dansk);
    $tid = mktime(12,0,0,$maaned,$dag,$aar);
    return $tid;
}
?>
Avatar billede thorus Nybegynder
05. marts 2004 - 14:33 #7
er ikke helt hvad jeg ledte efter tror jeg, prøver lige at uddybe mit sp?

har du en mail jeg kan sende? jeg laver en gif som viser det jeg skal lave..
Avatar billede detox Nybegynder
05. marts 2004 - 14:36 #8
hmm, ja: sveegaard@hotmail.com
Avatar billede thorus Nybegynder
05. marts 2004 - 14:41 #9
sendt..
Avatar billede detox Nybegynder
05. marts 2004 - 14:44 #10
modtaget...
Avatar billede detox Nybegynder
05. marts 2004 - 14:48 #11
Har lagt den her, så alle kan følge med:
http://www.buksevand.dk/img/datoer.gif
Avatar billede thorus Nybegynder
05. marts 2004 - 14:50 #12
perfekt.
Avatar billede thorus Nybegynder
05. marts 2004 - 15:22 #13
att: detox

mangler du info om hvad jeg mangler at få hjælp til?
Avatar billede detox Nybegynder
05. marts 2004 - 15:29 #14
Her er et udkast, men det skal siges at formateringen driller i NS og Mozilla, men det ser nogenlunde ud i IE. Jeg er ikke så god til css, så jeg ved ikke helt hvad der går galt i NS og Mozilla:

<?
$start = '10.02.2004';
$slut = '12.04.2004';
$opgstart[0] = '22.02.2004';
$opgslut[0] = '10.03.2004';
$opgstart[1] = '01.03.2004';
$opgslut[1] = '20.03.2004';
$opgstart[2] = '14.02.2004';
$opgslut[2] = '12.03.2004';
$col = array('red','blue','green');
define('DAG', 60*60*24);
$starttid = tid($start);
$sluttid = tid($slut);
for ($i=0;$i<count($opgstart);$i++) {
    $opgstarttid[$i] = tid($opgstart[$i]);
    $opgsluttid[$i] = tid($opgslut[$i])+3600;
}
echo "<div style='width: 1000px; height: 12px;'>";
$bcol = '#eeff99';
for ($i=$starttid;$i<=$sluttid+3600;$i+=DAG) {
    if ($bcol == '#eeff99') $bcol = '#ddee99';
    else $bcol = '#eeff99';
    echo "<span style='width:15px; height: 15px; background-color: ".$bcol.";
        font: bold xx-small Georgia; text-align: center; vertical-align: middle;'>
        ".date('d', $i).'</span>';
}
echo "</div><hr />";

for ($j=0;$j<count($opgstart);$j++) {
    echo "<div style='width: 1000px; height: 7px;'>";
    for ($i=$starttid;$i<=$sluttid+3600;$i+=DAG) {
        $bcol = ($opgstarttid[$j] <= $i && $opgsluttid[$j] >= $i) ? '#00ee00' : '#ffffff';
        echo "<span style='width: 15px; height: 4px; background-color: ".$bcol.";
            font: bold 4px Georgia; text-align: center; vertical-align: middle;'>
            &nbsp;</span>";
    }
    echo "</div>";
}

function tid ($dansk) {
    list ($dag, $maaned, $aar) = explode('.', $dansk);
    $tid = mktime(12,0,0,$maaned,$dag,$aar);
    return $tid;
}
?>
Avatar billede detox Nybegynder
05. marts 2004 - 15:32 #15
Avatar billede thorus Nybegynder
05. marts 2004 - 15:41 #16
Ser rigtig godt ud. last sp?

jeg har alle opgave start slut tider i en mysql DB

hvordan laver jeg det her om til en mysql select? så den hiver fat i X antal udtræk fra db'en automatik.

$opgstart[0] = '22.02.2004';
$opgslut[0] = '10.03.2004';
$opgstart[1] = '01.03.2004';
$opgslut[1] = '20.03.2004';
$opgstart[2] = '14.02.2004';
$opgslut[2] = '12.03.2004';
Avatar billede detox Nybegynder
05. marts 2004 - 15:51 #17
Hvis de eksempelvis ligger i 'start' og 'slut':

$res = mysql_query("select start, slut from tabel order by start");
while ($row = mysql_fetch_assoc($res)) {
  $opgstart[] = $row['start'];
  $opgslut[] = $row['slut'];
}
Avatar billede detox Nybegynder
05. marts 2004 - 15:55 #18
Men hvis du alligevel har dem liggende i en tabel, så kan du gøre det meget lettere ved at opbevare dem i et brugbart format (DATE, DATETIME, TIMESTAMP eller endnu nemmere i dette tilfælde: UNIX_TIMESTAMP). Du vil så nemt kunne hente tiden ud i et brugbart format og springe alle mellemregninger over.
Avatar billede thorus Nybegynder
05. marts 2004 - 17:18 #19
Att: detox

Her er dine extra point som lovede..
svar her: http://www.eksperten.dk/spm/473575
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