Avatar billede Slettet bruger
02. oktober 2006 - 21:40 Der er 10 kommentarer og
1 løsning

søger en kalender

hej

jeg søger en kalender som denne,
http://www.csguide.dk/test_mcnet_vagter/img.png

man skal kunne se de sidste da i sidste måned lige som på billedet og man skal kunne se hvilken uge det er lige som på billedet.

håber der er en der kan fixe det

på forhånd tak! :P
Avatar billede coderdk Praktikant
03. oktober 2006 - 02:16 #1
Avatar billede coderdk Praktikant
03. oktober 2006 - 02:18 #2
Den lille kan patches til også at vise dagene fra forrige og næste måned som den anden gør: http://php.coder.dk/smallcal.php
Avatar billede Slettet bruger
03. oktober 2006 - 15:37 #3
fedt nok. lig et svar :P
Avatar billede coderdk Praktikant
03. oktober 2006 - 15:44 #4
Ok, men tag nogle af pointene selv :)
Avatar billede Slettet bruger
04. oktober 2006 - 01:33 #5
nixxx. du for det hele :P
Avatar billede coderdk Praktikant
04. oktober 2006 - 09:33 #6
hehhe jamen tak så! :)
Avatar billede Slettet bruger
04. oktober 2006 - 21:55 #7
coderdk hvorfor virker den ikke ? http://mcd.zito.dk/kalender_3.php

her er phpinfo
http://mcd.zito.dk/phpinfo.php
Avatar billede coderdk Praktikant
04. oktober 2006 - 22:50 #8
Hmm. Jeg er 99,9999% sikker på at det er fordi du kører windows - Skal lige undersøge præcist hvad det er der ikke virker under windows :P
Avatar billede coderdk Praktikant
04. oktober 2006 - 22:54 #9
Prøv lige denne:

<?php

    setlocale( LC_TIME, 'da_DK' );

    $today = time();
    if ( !empty( $_GET['m'] ) && !empty( $_GET['y'] ) && is_numeric( $_GET['m'] ) && is_numeric( $_GET['y'] ) )
    {
        $today = mktime( 0, 0, 0, $_GET['m'], 1, $_GET['y'] );
    }

    $mname = ucfirst( strftime( '%B', $today ) );
    $thism = date( 'm', $today );
    $thisy = date( 'Y', $today );
    $startd = mktime( 0, 0, 0, $thism, 1, $thisy );
    $endd = mktime( 23, 59, 59, $thism + 1, 0, $thisy );
    $nodays = date( 'd', $endd );
    $startwd = strftime( '%w', $startd );
    $startwd = ( $startwd == 0 ? 7 : $startwd );
    $endwd = strftime( '%w', $endd );
    $endwd = ( $endwd == 0 ? 7 : $endwd );
    $startw = strftime( '%W', $startd );
    $endw = strftime( '%W', $endd );
    $startpad = ( $startwd == 1 ? 0 : $startwd - 1 );
    $realstart = mktime( 0, 0, 0, $thism, -$startpad + 1, $thisy );
    $startpadreal = date( 'd', $realstart );
    $endpad = ( $endwd == 7 ? 0 : 7 - $endwd );
    $realend = strtotime( '+' . $endpad . ' days', $endd );

    $lastm = date( 'm', strtotime( '-1 month', $today ) );
    $lastmy = date( 'Y', strtotime( '-1 month', $today ) );
    $nextm = date( 'm', strtotime( '+1 month', $today ) );
    $nextmy = date( 'Y', strtotime( '+1 month', $today ) );

    $days = array();
    $w = $startw;
    $n = 0;
    if ( $startpad > 0 )
    {
        for ( $i = $startpadreal; $i < $startpadreal + $startpad; $i++ )
        {
            $days[$w][] = $i;
            $n++;
        }
    }
    for ( $i = 1; $i <= $nodays; $i++ )
    {
        $n %= 7;
        if ( $n == 0 )
        {
            $w = strftime( '%W', mktime( 0, 0, 0, $thism, $i, $thisy ) );
        }
        $days[$w][] = $i;
        $n++;
    }
    if ( $endpad > 0 )
    {
        for ( $i = 1; $i <= $endpad; $i++ )
        {
            $days[$endw][] = $i;
        }
    }

?>
<html>
    <head>
        <title>Kalender for <?= $mname ?></title>
        <style>
            body {
                background-color: white;
                font-family: tahoma, verdana, arial, helveica;
                font-size: 11pt;
            }
            .mnav {
                background-color: #eeeeee;
                font-size: 14pt;
                text-align: center;
            }
            .hdr {
                text-align: center;
                font-size: 16pt;
            }
            th { background-color: #eeeeee; }
            .wkn {
                background-color: #eeeeee;
                text-align: center;
            }
            .notnow {
                background-color: #eeeeee;
                color: #888888;
            }
            .satd { background-color: #ddffdd; }
            .sund { background-color: #ffdddd; }
            .date { font-size: 9pt; }
        </style>
    </head>
    <body>
        <h1>Kalender for <?= $mname ?></h1>
        <table id="cal" width="760px" border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td class='mnav'><a title="Forrige måned" href="<?= $_SERVER['PHP_SELF'] . '?y=' . $lastmy . '&amp;m=' . $lastm ?>">&laquo;</a></td>
                <td class="hdr" colspan="6"><?= $mname . ', ' . $thisy ?></td>
                <td class='mnav'><a title="Næste måned" href="<?= $_SERVER['PHP_SELF'] . '?y=' . $nextmy . '&amp;m=' . $nextm ?>">&raquo;</a></td>
            </tr>
            <tr>
                <th style="width: 50px">Uge</th>
                <th>Man</th>
                <th>Tir</th>
                <th>Ons</th>
                <th>Tor</th>
                <th>Fre</th>
                <th style="width: 75px">Lør</th>
                <th style="width: 75px">Søn</th>
            </tr>
<?php

    foreach ( $days as $wk => $dayar )
    {
        echo "<tr><td class=\"wkn\">$wk</td>";
        for ( $d = 0; $d < 7; $d++ )
        {
            $c = '';
            if ( $d == 5 )
            {
                $c .= ' satd';
            }
            elseif ( $d == 6 )
            {
                $c .= ' sund';
            }
            $tm = $thism;
            $ty = $thisy;
            if ( ( $wk == $startw && $dayar[$d] > 10 ) ||
                ( $wk == $endw && $dayar[$d] < 10 ) )
            {
                $c .= ' notnow';
                if ( $dayar[$d] > 10 )
                {
                    $tm = $lastm;
                }
                else
                {
                    $tm = $nextm;
                }
                if ( $thism == 1 && $dayar[$d] > 10 )
                {
                    $ty = $thisy - 1;
                }
                else if ( $thism == 12 && $dayar[$d] < 10 )
                {
                    $ty = $thisy + 1;
                }
            }
            $tstamp = mktime( 0, 0, 0, $tm, $dayar[$d], $ty );
            if ( $c != '' )
            {
                $c = ' class="' . $c . '"';
            }
            $td = sprintf( '%02d', $dayar[$d] );
            $typ = ( $d > 4 ? 'dwecnt' : 'dcnt' );
            $cb = '';
            printf( "<td$c><div class='%s'><div class='date'>%d%s</div>", $typ, $td, $cb );
            echo "Her er plads til du kan skrive noget";
            echo '</div></td>';
        }
        echo "</tr>\n";
    }
   
?>
        </table>
    </body>
</html>
<?php

    show_source( __FILE__ );

?>
Avatar billede Slettet bruger
04. oktober 2006 - 23:38 #10
det virkede. og lige for interressen skyld hva ændrede du ?? og hva skal du have for det ?
Avatar billede coderdk Praktikant
04. oktober 2006 - 23:53 #11
Jeg læste strftime dokumentationen på php.net som refererede til MSDN-dokumentationen for hvilke af dem der er implementeret i windows - Så skiftede jeg %V ud med %W og %u med %w og tilpassede lidt :)
Det skal jeg ikke have noget for, ellers 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