Avatar billede ndifil Nybegynder
09. januar 2012 - 20:58 Der er 12 kommentarer og
1 løsning

Liste uger i flere måneder

Jeg har dette script viser lørdagene i 4 måneder
og jeg har brug for et array der lister 1. lørdag i hver måned og 2. lørdeg...

for ($i=0; $i<=4; $i++) {

if ($v_md[$i] == date("m")) $v_st_dag = date("d");
else $v_st_dag = 1;
$start = mktime(0, 0, 0, $v_md[$i], $v_st_dag, $v_ar[$i]);
$end = mktime(0, 0, 0, $v_md[$i]+1, 0, $v_ar[$i]);
    while ($start <= $end) {
        if (date('w', $start) == 6)
        {
            $dag = date('w', $start);
            $dag = $v_dag_navne[$dag];
           
            $week_start = date('l Y-m-d', $start);
            $week_end = date('l Y-m-d', $start + 604800);
            $week = date('W', $start);
            $dato = date('d', $start);

            echo $dag .' d. ' . $dato;
            echo ' uge ' . $week;

        }
        $start += 86400;
    }
}

Erkørt lidt fast i det.
/ Finn
Avatar billede olebole Juniormester
10. januar 2012 - 00:11 #1
<ole>

- og spørgsmålet er?

/mvh
</bole>
Avatar billede olebole Juniormester
10. januar 2012 - 00:12 #2
Sorry, jeg læste ikke ordentligt! Du har brug for et array, der lister 1. lørdag i hver anden måned - og hvad mere?
Avatar billede olebole Juniormester
10. januar 2012 - 00:14 #3
"Du har brug for et array, der lister 1. lørdag i hver måned" skulle der selvfølgelig stå  =)
Avatar billede ndifil Nybegynder
10. januar 2012 - 09:26 #4
Ja jeg skal bruge et array for at lave en fpdf
Avatar billede olebole Juniormester
10. januar 2012 - 15:36 #5
Ja, men hvad skal det præcist liste? Det fremgår ikke tydeligt af dit spørgsmål  =)
Avatar billede ndifil Nybegynder
10. januar 2012 - 15:53 #6
$dag, $dato, $week, $v_hold_lor = call_user_func ('find_hold_uge_lor', $week, 6, 1)
Avatar billede jantzen88 Nybegynder
10. januar 2012 - 15:58 #7
Er ikke sikkert jeg har forstået spørgsmålet men prøver alligevel. Mon dette kan bruges til noget?

<?php
$uge = 60*60*24*7;

for ($i=1; $i<=4; $i++) {
$foersteloerdag = strtotime("this Saturday 1-". $i ."-". date("Y"));
$andenloerdag = $foersteloerdag+$uge;

/* Første lørdag i måneden  */
echo " d. ". date("d",$foersteloerdag) ." uge ". date("W",$foersteloerdag);
/* Anden lørdag i måneden */
echo " d. ". date("d",$andenloerdag) ." uge ". date("W",$andenloerdag);
}
?>
Avatar billede olebole Juniormester
10. januar 2012 - 16:16 #8
Jeg forstår stadig ikke, hvad dit array skal indeholde
Avatar billede ndifil Nybegynder
10. januar 2012 - 17:38 #9
dag dato og uge for den første lørdag i 4 måneder i et array og et for den anden lørdag i 4 måneder til jeg har alle 4-5 lørdagene i de 4 måneder.

Det script jeg startede med virker helt fint hvor dataene i en tabel, hvor alle ugerne i en måned kan lægges i et felt.

Men til et fpdf script skal jeg bruge de første uger i er array osv.

/Finn
Avatar billede jantzen88 Nybegynder
10. januar 2012 - 18:09 #10
Så er alle første lørdage samlet under $dage1 og anden lørdage i måneden samlet under $dage2 som et array dag, dato og uge

<?php
$dage1 = array();
$dage2 = array();
for ($i=0; $i<4; $i++) {
$foersteloerdag = strtotime("this Saturday 01-". (date("m")+$i) ."-". date("Y"));
$andenloerdag = $foersteloerdag+604800;
$dage1[] = array(date("w",$foersteloerdag), date("d-m-Y",$foersteloerdag), date("W",$foersteloerdag));
$dage2[] = array(date("w",$andenloerdag), date("d-m-Y",$andenloerdag), date("W",$andenloerdag));
}
?>
Avatar billede olebole Juniormester
10. januar 2012 - 18:34 #11
- eller:

function getSaturdays($month, $year) {
    $saturdays = array();
    $stamp = mktime(0, 0, 0, $month, 1, $year);
    $last = strtotime('last saturday of this month', $stamp);
    for ($i=0; $i<6; $i++) {
        $stamp = strtotime('next saturday', $stamp);
        $saturdays[$i] = date('d.m.Y', $stamp);
        if ($stamp==$last) break;
    }
    return $saturdays;
}
$saturdays = getSaturdays(1, 2012);
var_dump($saturdays);
Avatar billede ndifil Nybegynder
11. januar 2012 - 23:21 #12
Tak for jeres svar!
Det gav mig stikordene til at komme videre.
Det er nok ikke den kønneste kode, men den virker.

    $uge = array(
        $md => array(),
    );
    $md = array(
        $da => array(),
    );
    $da = array(
        1 => array(),
        2 => array(),
        3 => array(),
    );
    for ($md=0; $md<=$v_ant_md-1; $md++) {
        if ($v_md[$md] == date("m")) $v_st_dag = date("d");
        else $v_st_dag = 1;
        $start = mktime(0, 0, 0, $v_md[$md], $v_st_dag, $v_ar[$md]);
        $end = mktime(0, 0, 0, $v_md[$md]+1, 0, $v_ar[$md]);
        $da = 0;
        while ($start <= $end) {
            if (date('w', $start) == 6){
                $dag = date('w', $start);
                $dag = $v_dag_navne[$dag];
               
                $week_start = date('l Y-m-d', $start);
                $week_end = date('l Y-m-d', $start + 604800);
                $week = date('W', $start);
                $dato = date('d', $start);
                $maaned = date('m', $start);

                $v_hold_lor = call_user_func ('find_hold_uge_lor', $week, 6, 1);
                $v_hold = str_split(call_user_func ('find_hold',$v_hold_lor), 7);
                   
                $uge[$md][$da][1] = $dag .' d. ' . $dato;
                $uge[$md][$da][2] = 'uge ' . $week;
                $uge[$md][$da][3] = $v_hold[0];


            $da++;
            }
            $start += 86400;
        }
        }
#--------------------------------------------------------
    for ($ui=0; $ui<=6; $ui++) {
        for ($li=0; $li<=3; $li++) {
            for ($mi=0; $mi<=$v_ant_md-1; $mi++) {
                if ($li == 3) $b ='B';
                else $b = '';
                $pdf->SetFont('Arial',$b,10);
                $pdf->Cell(40,5,$uge[$mi][$ui][$li],0,0,'L');
            }
        $pdf->Ln();
        }
    }
Læg et svar så jeg kan lukke.
/ Finn
Avatar billede ndifil Nybegynder
17. januar 2012 - 11:10 #13
lukker
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

IT-JOB

Netcompany A/S

Test Consultant

Lindhardt og Ringhof Forlag

Data Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Chef til stor applikationstransformation i Forsvaret

Capgemini Danmark A/S

Management Consultant