Denne artikel vil lære dig, hvordan du laver en kalender i PHP. Her angiver nogle gratis php kalender scripts. Eller du kan direkte ind i webstedet phpkode.com for mere gratis php tutorials.
Trin
1. Indsamle de nødvendige oplysninger, som er vigtige for at vise den faktiske måned, og fremhæv den faktiske dag. Udover dette vil du også vise den faktiske måned og år. For at gøre dette skal du bruge 3 Special Day Inputs: Den faktiske dag, den første dag i den faktiske måned, den sidste dag i den faktiske måned

2. Bestem hvilken dag var den første dag, hvor længe er måneden, og selvfølgelig, som er den faktiske dag, med ovenstående oplysninger.
3.
Brug den PHP indbygget funktion: getdate ()
. Uden parametre returnerer denne funktion den faktiske dagsinformation i et array som følger:
For at få den sidste dag i måneden med få dato, skal vi forsøge at få 0. dag i den næste måned. Så koden for at få oplysningerne ser sådan ud:
3 | $ første dag = getdate ( mkTime (0,0,0, $ i dag [ `Mon` ], 1, $ i dag [ `år` ]))- |
4 | $ Lastay = getdate ( mkTime (0,0,0, $ i dag [ `Mon` ] +1,0, $ i dag [ `år` ]))- |
Trin 3.For at vise en kalender har vi brug for et bord med 7 kolonner for ugens dage. Antallet af linjer afhængigt af antallet af dage og den første dag i måneden. Men vi har brug for en header linje med måned og års information, en subheader linje med navnet på dagene.
2 | // Opret en tabel med de nødvendige overskriftsinformationer |
3 | ekko `` ` - |
"-
4 | ekko ` |
`. $ i dag [ `måned` ]. " - " . $ i dag [ `år` ]. " |
---|
`-
`-
`-

Nu hvor du har overskriften på bordet, skal du fylde den første række. Det er ikke så nemt, da du ikke bare kan skrive 1 i den første celle, 2 i anden og så videre. Det virker kun, hvis den første dag i måneden var mandag, men hvad hvis ikke? For at bestemme dette har vi brug for dagens vare fra første dags array. Med disse oplysninger kan vi fylde cellerne med et mellemrum, hvis det er nødvendigt. Koden for at gøre dette er følgende:`-
03 | til ( $ I = 1- $ I < $ første dag [ `WDAY` ]- $ I ++) { |
`-
07 | til ( $ I = $ første dag [ `WDAY` ]- $ I <= 7- $ I ++) { |
"-
`-
Som næste trin skal vi fylde til følgende linjer. Det er lidt lettere, vi behøver kun at vide, hvor mange hele ugen vi har, og udfyld nogle bord rækker som følger: 02 | $ Fullweeks = etage (( $ Lastay [ `may` ]- $ Limday ) / 7)- |
04 | til ( $ I = 0- $ I < $ Fullweeks - $ I ++) { |
`-
06 | til ( $ J = 0- $ J <7- $ J ++) { |
"-
`-
Som Semi-sidste skridt skal vi tilføje resten af måneden til den sidste linje. I dette tilfælde er det ret nemt: 02 | hvis ( $ Limday < $ Lastay [ `may` ]) { |
`-
04 | til ( $ I = 0- $ I <7- $ I ++) { |
06 | hvis ( $ Limday <= $ Lastay [ `may` ]) { |
"-
`-
`-
Trin 7.For at gøre kalenderen lille smule pænere vil vi introducere nogle CSS design. CSS-filen er meget enkel:04 | Border-Collapse : falde sammen - |
08 | Border-collpase: collpase- |
14 | baggrundsfarve : # F1F3F5 - |
17 | Border-Collpase: Collpase- |
19 | baggrundsfarve : # E9ECEF - |
22 | baggrundsfarve : # C22 - |
23 | skrifttype-vægt : fremhævet - |
Den komplette kode ved hjælp af CSS er følgende: 01 | "-// W3C // DTD XHTML 1.0 overgang // en" "DTD / XHTML1-overgangs.DTD" >
|
04 | # "Style / Style.CSS" rel = "Stylesheet" Type = "Tekst / CSS" /> |
08 | fungere showcalendar () { |
09 | // få nøgle dag informationer. |
10 | // Vi har brug for den første og sidste dag i måneden og den faktiske dag |
12 | $ første dag = getdate ( mkTime (0,0,0, $ i dag [ `Mon` ], 1, $ i dag [ `år` ]))- |
13 | $ Lastay = getdate ( mkTime (0,0,0, $ i dag [ `Mon` ] +1,0, $ i dag [ `år` ]))- |
15 | // Opret en tabel med de nødvendige overskriftsinformationer |
17 | ekko ` |
`. $ i dag [ `måned` ]. " - " . $ i dag [ `år` ]. " |
---|
`-
`-
`-
22 | // Vis den første kalender række med korrekt positionering |
`-
24 | til ( $ I = 1- $ I < $ første dag [ `WDAY` ]- $ I ++) { |
`-
28 | til ( $ I = $ første dag [ `WDAY` ]- $ I <= 7- $ I ++) { |
30 | hvis ( $ Limday == $ i dag [ `may` ]) { |
31 | $ klasse = `klasse ="Limday"` - |
"-
`-
39 | // få hvor mange komplette uger der er i den faktiske måned |
40 | $ Fullweeks = etage (( $ Lastay [ `may` ]- $ Limday ) / 7)- |
41 | til ( $ I = 0- $ I < $ Fullweeks - $ I ++) { |
`-
43 | til ( $ J = 0- $ J <7- $ J ++) { |
45 | hvis ( $ Limday == $ i dag [ `may` ]) { |
46 | $ klasse = `klasse ="Limday"` - |
"-
`-
55 | // Vis nu resten af måneden |
56 | hvis ( $ Limday < $ Lastay [ `may` ]) { |
`-
58 | til ( $ I = 0- $ I <7- $ I ++) { |
60 | hvis ( $ Limday == $ i dag [ `may` ]) { |
61 | $ klasse = `klasse ="Limday"` - |
66 | hvis ( $ Limday <= $ Lastay [ `may` ]) { |
"-
`-
`-
75 | ekko ` |
`-