PHP programmeringsspråk funktioner datum och tid funktioner som förenklar skapa en månadskalender . "Date () " returnerar ett formaterat datum , eller delar av ett datum för ett visst UNIX tidstämpel . Den " mktime () " returnerar ett Unix- tidsstämpel för ett givet datum och tid . Genom att kombinera de två , kan du hämta namnet på månaden, den första och den sista dagen i månaden , och andra användbara värden vid utskrift din kalender . Skapa en grundläggande kalender , sedan bygga på den för att anpassa den efter dina behov .
Du behöver :
PHP -kod redaktör eller textredigerare
1
Starta din kalender kod genom att sätta standard tidszon för ditt område . . Detta kommer att säkerställa den aktuella månaden och i dag visas korrekt
date_default_timezone_set ( " America /Denver ') ; . ? .
2
Kontrollera skriptets $ _REQUEST array för att se om den " månad " och "år " variabler sattes upp. Om inte , ställ dem till dagens värden och tilldela variabler som heter $ månad och $ år .
if ( ! isset ( $ _REQUEST [ " månad " ] ) ) $ _REQUEST [ " månad " ]=datum ( " n " );
om $ _REQUEST [ " Skicka "]=date ( "Y " ) ( isset ( $ _REQUEST [ " år " ] ) ! ) ;
$ månad=$ _REQUEST [ " månad " ] ;
$ år=$ _REQUEST [ " Skicka " ] ;
datum ( " n " ) returnerar numeriska månad och dag ( "Y " ) returnerar den fyrsiffriga året . Se " PHP Manual : datum " . dokumentation knuten i avsnittet Referenser för en komplett lista av formatering sträng tecken
3
Generera en tidsstämpel med hjälp mktime ( ) , för den första dagen . av de medföljande månad och år . Ställ in tiden parametrar till " 0 ". Tiden är inte nödvändig för att skriva ut en kalender
$ timestamp=mktime ( 0 , 0 , 0 , $ månad , 1 , $ år) .
4
Skapa variabler för att hålla namnet i månaden ( $ monthtxt ) , faller den numeriska sista dagen i månaden ( $ lastday ) , och den numeriska veckodag den första dagen i den månad ( $ firstdow , där söndagen "0 ") .
$ monthtxt=date ( "F " , $ timestamp ) ;
$ lastday=date ( " t " , $ timestamp ) ;
$ firstdow=date ( "W" , $ timestamp ) ; ? .
Author 5
Skapa kalender huvudet , skriva i månaden ( $ monthtxt ) och år ( $ år ) över ett bord med sju kolumner toppad med dag-of-the-veckan kolumnrubrikerna.
php echo $ monthtxt ? >
php echo $ år ? >
S |
M |
T |
W |
T |
F |
S |
6 .
Starta en for-loop för att stega igenom varje tabellcell i kalendern . Värdet $ d räknar genom antalet tabellceller från den övre vänstra cellen ( "0") i tabellen genom cellen som innehåller den sista dagen i månaden ( $ lastday + $ firstdow-1) .
för ( $ d=0 ; $ d <( $ lastday + $ firstdow ), $ d + + ) ? . {
7
Beräkna dagen i månaden som skrivs in i tabellen
$ curday=$ d-$ firstdow + 1 , . .
8
Starta en ny tabellrad om den 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äkna med "Sunday "-kolumnen
if ( ( $ d % 7 ) == 0 ) echo " \ n "; .
9 .
Skriv tabellcellen . När $ D har räknat fram till den första tabellen cell som innehåller ett giltigt dagen i månaden kommer den ut värdet för den dagen i tabellcellen
echo " " . if ( $ d >=$ firstdow ) echo $ curday ; echo " | \ n " ; .
10
Avsluta tabellrad om den nuvarande räkna landar på sista tabellkolumn . När $ d % 7 är 6 , är räkna med " Lördag " kolumnen
if ( ( $ d % 7 ) == 6 ) echo "
\ n "; .
11 .
Avsluta for-loop , PHP containern och den tabellen.
}
? >
12 .
Testa dina PHP-skript . Kalla det med månad och år för att skriva ut en kalender för en viss månad ( till exempel http://yoursite. com/calendar. php?month=2 year=2008 ) .