Avatar billede haolan Nybegynder
27. marts 2006 - 21:13 Der er 10 kommentarer og
1 løsning

Opsætning af kalender

Hey eksperter..

Jeg har lavet en opstilling i paint jeg gerne vil have i PHP.
Billedet er en kalender som i nok har set før med dage foroven og datoerne listet op under dagene.

http://din.vivaa.dk/uploads/1/cal.JPG

Det skal gerne være så man kan klikke videre hen i kalender og se den næst kommende måned også.. Altså et klik til højre og man kommer til april, hvis man i forvejen står på marts.

Den skal naturligvis også tage højde for skudår og sådan.

Hvordan fikser man en sådan opstilling?
Avatar billede whatever Nybegynder
27. marts 2006 - 22:15 #1
Jeg har lavet en på et tidspunkt. Den endelige version kan du ikke få da den er implementeret i et cms. Men du kan få koden til mit første forsøg på at lave en minikalender. Den endelige udgave er objektorienteret, det er denne udgave dog ikke:

I funktion: http://www.efusion.it/calendar.php
Sourcen: http://www.efusion.it/calendar.phps

Prøv at kigge på det, og se om du ikke kan bruge nogle af idéerne fra den.
Avatar billede jodde Praktikant
27. marts 2006 - 23:18 #2
Har du overvejet at DL en "færdig" kalender ? Bruger selv Rainlendar (Google it), som har mange skins, samt to-do lister m.m.
Avatar billede haolan Nybegynder
28. marts 2006 - 07:24 #3
whatever >> Jeg har kikket lidt på det og vil lige se nærmere på det senere.. Men foreløbig kan jeg ikke helt se mig ud af hvordan jeg skal få den til at skrive noget.

jodde >> jeg har selv brugt rainlendar, men det nytter jo ikke når jeg skal bruge den i PHP :)
Avatar billede haolan Nybegynder
29. marts 2006 - 20:53 #4
Kunne du eventuelt forklare hvad der skal laves ved den for at den kommer til at vise det rigtigt?
Avatar billede whatever Nybegynder
29. marts 2006 - 21:09 #5
Hvad mener du?

Kan du ikke få den til at se ud som denne http://www.efusion.it/calendar.php, eller....?
Avatar billede haolan Nybegynder
29. marts 2006 - 21:13 #6
Nej den viser kun det øverste altså dagbogstaverne og så den der streg.. Alt der under vises ikke..
Avatar billede whatever Nybegynder
29. marts 2006 - 21:33 #7
Det kan jeg godt se når jeg kører det lokalt på min winxp med apache. Problemet skyldes at nogle af dato-funktionerne i php opfører sig anderledes på en windows-platform, end på en unix/linux-platform.

Jeg har tilrettet koden, så den umiddelbart virker på min windows xp. Det er ikke testet på en unix/linux-platform:



<style type="text/css">
    body, td {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
    }
</style>

<?php

    setlocale(LC_ALL,da_DK.ISO8859-1);

    $Year = (isset($_REQUEST['Year']) && $_REQUEST['Year']) ? $_REQUEST['Year'] : strftime("%Y",time());
    $Month = (isset($_REQUEST['Month']) && $_REQUEST['Month']) ? $_REQUEST['Month'] : strftime("%m",time());
    $StartDate = "$Year-$Month-01";
    $StartDateTS = strtotime($StartDate);
    $StartDayNum = date("w",$StartDateTS);
    $LastDay = date("j",strtotime("-1 day",strtotime("+1 month",$StartDateTS)));

    $PreviousYear = strftime("%Y",strtotime("-1 month",$StartDateTS));
    $PreviousMonth = strftime("%m",strtotime("-1 month",$StartDateTS));
    $NextYear = strftime("%Y",strtotime("+1 month",$StartDateTS));
    $NextMonth = strftime("%m",strtotime("+1 month",$StartDateTS));

    echo("<table width=\"160\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
    echo("<tr>\n");
    echo("<td colspan=\"8\" align=\"center\"><a href=\"calendar.php?Year=$PreviousYear&Month=$PreviousMonth\"><<</a>&nbsp;&nbsp;".strftime("%B %Y",$StartDateTS)."&nbsp;&nbsp;<a href=\"calendar.php?Year=$NextYear&Month=$NextMonth\">>></a></td>\n");
    echo("</tr>\n");
    echo("<tr>\n");
    echo("<td width=\"20\" height=\"20\" align=\"right\">&nbsp;</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">m</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">t</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">o</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">t</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">f</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">l</td>\n");
    echo("<td width=\"20\" align=\"right\" style=\"border-bottom: 1px solid black\">s</td>\n");
    echo("</tr>\n");

    // Creating empty cells
    if ($StartDayNum > 1) {
        echo("<tr>\n");
        echo("<td height=\"20\" align=\"right\" style=\"border-right: 1px solid black; padding-right: 5px\">&nbsp;".strftime("%V",$StartDateTS)."</td>\n");
        $EmptyCells = $StartDayNum - 1;
        for ($I = 0; $I < $EmptyCells; $I++) {
            echo("<td>&nbsp;</td>\n");
        }
    }

    for ($Day = 1; $Day <= $LastDay; $Day++) {
        if (date("w",strtotime("$Year-$Month-$Day")) == 1) {
            if ($Day > 1)
                echo("</tr>\n");
            echo("<tr>\n");
            echo("<td height=\"20\" align=\"right\" style=\"border-right: 1px solid black; padding-right: 5px\">".strftime("%V",strtotime("$Year-$Month-$Day"))."</td>\n");
        }

        echo("<td align=\"right\"><a href=\"#\">".$Day."</a></td>\n");

    }

    echo("</tr>\n");
    echo("</table>\n");

?>
Avatar billede haolan Nybegynder
29. marts 2006 - 21:37 #8
Perfekt.. nu er den lige som jeg skal bruge den :)

Hvor ligger din ændring, sådan efter om den kører på win eller linux?
Avatar billede whatever Nybegynder
29. marts 2006 - 21:43 #9
Jeg har lige testet den nye version på mit webhotel der kører linux fedora, og det virker fint der. Så hvis du bruger den, tror jeg ikke du løber ind i problemer.

Men ellers har jeg ændret i følgende linier:

$StartDayNum = date("w",$StartDateTS);
$LastDay = date("j",strtotime("-1 day",strtotime("+1 month",$StartDateTS)));
if (date("w",strtotime("$Year-$Month-$Day")) == 1) {
Avatar billede haolan Nybegynder
29. marts 2006 - 21:44 #10
ah ja ok.. :)

Takker for hjælpen :)
Avatar billede haolan Nybegynder
29. marts 2006 - 22:12 #11
Kan man ikke på en eller anden måde få sat teksten med fed skrift på den dag det er i dag?
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