Den här artikeln kommer att lära dig hur du gör en kalender i PHP. Här lista några gratis PHP-kalenderskript. Eller du kan direkt till webbplatsen phpkode.com för mer gratis php tutorials.
Steg
1. Samla den nödvändiga informationen som är viktig för att visa den faktiska månaden och markera den aktuella dagen. Förutom detta vill du också visa den faktiska månaden och året. För att göra detta behöver du 3 speciella daginmatningar: den aktuella dagen, den första dagen i den faktiska månaden, den sista dagen i den faktiska månaden
2. Bestäm vilken dag som var den första dagen, hur länge är månaden, och det är självklart den aktuella dagen, med ovanstående information.
3.
Använd den inbyggda PHP: GetDate ()
. Utan parametrar returnerar den här funktionen den aktuella dagen informationen i en array enligt följande:
För att få den sista dagen i månaden med få datum måste vi försöka få 0. dag i nästa månad. Så koden för att få informationen ser ut så här:
3 | $ Första = getdat ( mktime (0,0,0, $ Idag [ "mån" ], 1, $ Idag [ `år` ]))- |
4 | $ lastdag = getdat ( mktime (0,0,0, $ Idag [ "mån" ] +1,0, $ Idag [ `år` ]))- |
Steg 3.För att visa en kalender behöver vi ett bord med 7 kolumner för veckodagen. Antalet linjer beroende på antalet dagar och den första dagen i månaden. Men vi behöver en rubrik med månad och år information, en underrehängslinje med namnet på dagarna.
2 | // Skapa ett bord med nödvändiga rubrikinformation |
3 | eko `` - |
"-
4 | eko ` |
`. $ Idag [ `månad` Anklagelse. " - " . $ Idag [ `år` Anklagelse. " |
---|
`-
`-
`-
Nu när du har rubriken i bordet, fyll den första raden. Det är inte så lätt som du inte bara kan skriva 1 i den första cellen, 2 i den andra och så vidare. Det fungerar bara om den första dagen i månaden var måndag, men vad om inte? För att bestämma detta behöver vi dagsobjektet från första dagen. Med denna information kan vi fylla cellerna med ett utrymme om det behövs. Koden för att göra detta är följande:`-
03 | för ( $ i = 1- $ i < $ Första [ `WDAY` Anklagelse- $ i ++{ |
`-
07 | för ( $ i = $ Första [ `WDAY` Anklagelse- $ i <= 7- $ i ++{ |
"-
`-
Som nästa steg måste vi fylla i följande rader. Det är lite lättare, vi behöver bara veta hur många hela veckan vi har och fyller några bordrader enligt följande: 02 | $ fullweeks = golv (( $ lastdag [ `may` Anklagelse- $ aktigen ) / 7)- |
04 | för ( $ i = 0- $ i < $ fullweeks - $ i ++{ |
`-
06 | för ( $ j = 0- $ j <7- $ j ++{ |
"-
`-
Som halvfiltigt steg måste vi lägga resten av månaden till den sista raden. I det här fallet är det ganska enkelt: 02 | om ( $ aktigen < $ lastdag [ `may` ]) { |
`-
04 | för ( $ i = 0- $ i <7- $ i ++{ |
06 | om ( $ aktigen <= $ lastdag [ `may` ]) { |
"-
`-
`-
Steg 7.För att göra kalendern lite trevligare kommer vi att introducera lite CSS-design. CSS-filen är väldigt enkel:04 | Border-Collapse : kollaps - |
08 | Border-Collpase: Collpase- |
14 | bakgrundsfärg : # F1F3F5 - |
17 | Border-Collpase: Collpase- |
19 | bakgrundsfärg : # E9ecef - |
Den fullständiga koden med CSS är följande: 01 | "-// w3c // dtd xhtml 1.0 övergång // en" "DTD / XHTML1-övergång.dtd" >
|
04 | # "stil / stil.css" rel = "stylesheet" typ = "Text / CSS" /> |
08 | fungera showcalendar () { |
09 | // få nyckeldagsinformation. |
10 | // Vi behöver den första och sista dagen i månaden och den aktuella dagen |
12 | $ Första = getdat ( mktime (0,0,0, $ Idag [ "mån" ], 1, $ Idag [ `år` ]))- |
13 | $ lastdag = getdat ( mktime (0,0,0, $ Idag [ "mån" ] +1,0, $ Idag [ `år` ]))- |
15 | // Skapa ett bord med nödvändiga rubrikinformation |
17 | eko ` |
`. $ Idag [ `månad` Anklagelse. " - " . $ Idag [ `år` Anklagelse. " |
---|
`-
`-
`-
22 | // visa den första kalenderraden med korrekt positionering |
`-
24 | för ( $ i = 1- $ i < $ Första [ `WDAY` Anklagelse- $ i ++{ |
`-
28 | för ( $ i = $ Första [ `WDAY` Anklagelse- $ i <= 7- $ i ++{ |
30 | om ( $ aktigen == $ Idag [ `may` ]) { |
31 | $ klass = `class ="omdag"` - |
"-
`-
39 | // få hur många kompletta veckor är i den faktiska månaden |
40 | $ fullweeks = golv (( $ lastdag [ `may` Anklagelse- $ aktigen ) / 7)- |
41 | för ( $ i = 0- $ i < $ fullweeks - $ i ++{ |
`-
43 | för ( $ j = 0- $ j <7- $ j ++{ |
45 | om ( $ aktigen == $ Idag [ `may` ]) { |
46 | $ klass = `class ="omdag"` - |
"-
`-
55 | // visa nu resten av månaden |
56 | om ( $ aktigen < $ lastdag [ `may` ]) { |
`-
58 | för ( $ i = 0- $ i <7- $ i ++{ |
60 | om ( $ aktigen == $ Idag [ `may` ]) { |
61 | $ klass = `class ="omdag"` - |
66 | om ( $ aktigen <= $ lastdag [ `may` ]) { |
"-
`-
`-
75 | eko ` |
`-
Dela på det sociala nätverket: