Come creare un calendario in PHP

June 27

Come creare un calendario in PHP


Il linguaggio di programmazione PHP dispone di data e ora funzioni che semplificano la creazione di un calendario mensile. La "data () \" \ funzione restituisce una data formattata, o parti di una data, per un dato timestamp UNIX. Il "mktime () \" \ funzione restituisce un timestamp Unix per una determinata data e ora. Combinando i due, è possibile recuperare il nome del mese, il primo e l'ultimo giorno del mese, e altri valori utili per la stampa il calendario. Creare un calendario di base, poi costruire su di esso per personalizzarlo per le vostre esigenze.

istruzione

1 Avviare il codice del calendario impostando il fuso orario predefinito per la vostra zona. Questo garantisce che il mese in corso e oggi vengono visualizzati correttamente.

<? Php
date_default_timezone_set ( 'America / Denver');

2 Controllare $ _REQUEST matrice dello script per vedere se la \ \ variabili "anno \" "mese \" e sono stati fissati. In caso contrario, impostare i valori di oggi e assegnare alle variabili denominate $ al mese e $ l'anno.

if (! isset ($ _ richiesta [\ "mese \"])) $ _REQUEST [\ "mese \"] = data (\ "n \")
ANDARE
if (! isset ($ _ richiesta [\ "anno \"])) $ _REQUEST [\ "anno \"] = data (\ "Y \")
ANDARE
$ Mese = $ _REQUEST [\ "mese \"]
ANDARE
$ Anno = $ _REQUEST [\ "anno \"]
ANDARE

Data (\ "n \") restituisce il mese numerico, e la data (\ "Y \") restituisce l'anno a quattro cifre. Vedere la \ "Manuale PHP: Data \" la documentazione collegata nella sezione Riferimenti per un elenco completo di caratteri di formattazione delle stringhe.

3 Generare un timestamp, utilizzando mktime (), per il primo giorno del mese previsto e l'anno. Impostare i parametri di tempo a \ "0 \" Il tempo non è necessario per la stampa di un calendario.

$ Timestamp = mktime (0, 0, 0, $ al mese, 1, $ anno);

4 Creare variabili per contenere il nome del mese ($ monthtxt), l'numerica ultimo giorno del mese ($ lastday), e il giorno numerica della settimana del primo giorno del mese cade ($ firstdow, dove Domenica è \ " 0 \ ").

$ Monthtxt = data (\ "F \", $ timestamp)
ANDARE
$ Lastday = data (\ "t \", $ timestamp)
ANDARE
$ Firstdow = data (\ "w \", $ timestamp)
ANDARE
?>

5 Creare l'intestazione del calendario, la stampa del mese ($ monthtxt) e anno ($ l'anno) sopra una tabella con sette colonne sormontate da day-of-the-week intestazioni delle colonne.

<H2>
<? Php echo $ monthtxt?>
<? Php echo $ l'anno?>
</ H2>

<Table>
<Tr>
<Th> S </ th>
<Th> M </ th>
<Th> T </ th>
<Th> W </ th>
<Th> T </ th>
<Th> F </ th>
<Th> S </ th>
</ Tr>

6 Inizia un ciclo for per scorrere ogni cella della tabella nel calendario. Il valore di $ d conterà attraverso il numero di celle della tabella dalla cella in alto a sinistra (\ "0 \") della tabella attraverso la cella contenente l'ultimo giorno del mese ($ lastday + $ firstdow - 1).

<? Php
for ($ d = 0; $ d <($ lastday + $ firstdow); $ D ++) {

7 Calcolare il giorno del mese in stampa nella tabella.

$ Curday = $ d - $ firstdow + 1;

8 Inizia una nuova riga della tabella, se il conteggio corrente atterra sulla prima colonna della tabella. $ d% 7 restituisce il resto di $ D / 7. Quando $ d% 7 è 0, il conteggio è sul \ "Domenica \" colonna.

if (($ d% 7) == 0) echo \ "<tr> \ n \";

9 Stampa la cella di una tabella. Quando $ d ha contato fino alla prima cella tabella contenente un giorno valido del mese, verrà stampato il valore per quel giorno nella cella della tabella.

echo \ "<td> \"
ANDARE
if ($ d> = $ firstdow) echo $ curday;
echo \ "</ td> \ n \";

10 Terminare la riga della tabella, se il conteggio corrente atterra l'ultima colonna della tabella. Quando $ d% 7 è 6, il conteggio è sulla colonna \ "Sabato \".

if (($ d% 7) == 6) echo \ "</ tr> \ n \";

11 Terminare il ciclo for, il contenitore PHP, e il tavolo.

}
?>
</ Table>

12 Prova lo script PHP. Chiamatelo con il mese e l'anno di stampare un calendario per un mese specifico (per esempio, http://yoursite.com/calendar.php?month=2&amp;year=2008).