PHP programmeringsspråk presenterar datum och tid funktioner som förenklar skapa en månadskalender . Den "date ( ) "-funktion returnerar ett formaterat datum , eller delar av en dag , för en given UNIX tidsstämpel . Den " mktime ( ) "-funktion returnerar en Unix timestamp för ett visst datum och tid . Genom att kombinera de två , kan du hämta namnet på månaden , den första och sista dagarna i månaden , och andra användbara värden för utskrift kalendern . Skapa en grundläggande kalender , sedan bygga på den för att anpassa den efter dina behov . Saker du behöver
PHP-kod redaktör eller textredigerare
Visa fler instruktioner
1
Starta din kalender koden genom att ange den tidszon för ditt område . Detta kommer att säkerställa innevarande månad och dag visas korrekt
< phpdate_default_timezone_set ( ' America /Denver '); . ?
2
Kontrollera manuset s $ _REQUEST array för att se om " månad " och "År" variabler inställd . Om inte , ställ dem till dagens värderingar och tilldela variabler som heter $ månad och $ år .
If ( ! Isset ( $ _REQUEST [ " månad " ] ) ) $ _REQUEST [ " månad " ] = date ( " n " ) ; if ( isset ( $ _REQUEST ! [ " Skicka " ] ) ) $ _REQUEST [ " Skicka " ] = date ( " Y " ) , $ månad = $ _REQUEST [ " månad " ] , $ år = $ _REQUEST [ ,"" Skicka " ] ;
datum ( " n " ) returnerar det numeriska månad och datum ( " Y " ) returnerar den fyrsiffriga året . Se " PHP Manual : datum " . Dokumentation länkad i avsnittet Referenser för en komplett lista av formatera sträng tecken Addera 3
Generera en tidsstämpel , hjälp mktime ( ) , för den första dagen i den medföljande månad och år . Ställ tidparametern till " 0 . " Tiden är inte nödvändig för att skriva ut en kalender
$ tidsstämpel = mktime ( 0 , 0 , 0 , $ månad , 1 , $ år ),.
4
Skapa variabler för att hålla namnet på månaden ( $ monthtxt ) , den numeriska sista dagen i månaden ( $ lastday ) , och den numeriska veckodag den första dagen i månaden infaller på ( $ firstdow , där söndagen är " 0 " ) .
$ monthtxt = date ( " F " , $ timestamp ) , $ lastday = date ( " t " , $ timestamp ) , $ firstdow = date ( " w " , $ timestamp ) ; ? >
5
Skapa kalendern sidhuvud , skriver månaden ( $ monthtxt ) och år ( $ år ) ovanför ett bord med sju kolumner toppad med dag -av - veckan kolumnrubrikerna .
< ; ? ? ? h2 > < php echo $ monthtxt > < php echo $ år
6
Starta en for-loop för att stega igenom varje tabellcell i kalendern . Värdet $ d räknas igenom antal tabellceller från övre vänstra cellen ( " 0 " ) i tabellen genom cellen som innehåller den sista dagen i månaden ( $ lastday + $ firstdow - 1 ) .
< phpfor ( $ d = 0 , $ d < ( $ lastday + $ firstdow ) , $ d + + ) . {
7
Beräkna dagen i den månad som skrivs in i tabellen
$ curday = $ d - $ firstdow + 1 ;
8
Starta en ny tabellrad om de nuvarande räkna landar på den första tabellen kolumnen . $ d % 7 returnerar resten av $ d /7 . När $ d % 7 är 0 , är räkningen på " Sunday " kolumnen
if ( ( $ d % 7 ) == 0 ) echo "
\\ n "; .
9 ut bordet cellen . När $ d har räknat upp till den första tabellen cell som innehåller ett giltigt dagen i månaden , kommer den att skriva ut värdet för den dagen i tabellen cellen
echo "
"; . If ( $ d > = $ firstdow ) echo $ curday ; echo " < /td > \\ n "; 10 Avsluta tabellraden om de nuvarande räkna landar på sista bordet kolumnen . När $ d % 7 är 6 , är räkningen på "Saturday " kolumnen if ( ( $ d % 7 ) == 6 ) echo " < /tr > \\ n " ; . 11 Slutet för loop , PHP container , och tabellen . } > < /table > 12 Testa din PHP-skript . Kalla det med månad och år för att skriva ut en kalender för en specifik månad ( t.ex. http://yoursite.com/calendar.php?month=2&year=2008 ) .
|