Este artigo irá ensinar a você como fazer um calendário no PHP. Aqui, liste alguns scripts gratuitos de calendário PHP. Ou você pode diretamente no site phpkode.com para mais tutoriais grátis PHP.
Passos
1. Recolha as informações necessárias que é importante para exibir o mês real e realçar o dia real. Além disso, você quer exibir o mês real e o ano também. Para isso, você precisará de 3 entradas especiais: o dia real, no primeiro dia do mês real, no último dia do mês real

2. Determinar que dia foi o primeiro dia, quanto tempo dura o mês e, claro, que é o dia real, com as informações acima.
3.
Use a função PHP integrada: getDate ()
. Sem parâmetros, esta função retorna as informações reais do dia em uma matriz da seguinte maneira:
Para obter o último dia do mês com a data da obtenção, precisamos tentar obter o 0. dia do próximo mês. Então o código para obter as informações se parece com isso:
3 | $ FirstDay = getDate ( mktime (0,0,0, $ hoje [ `seg` ], 1, $ hoje [ `ano` ])))- |
4 | $ lessday = getDate ( mktime (0,0,0, $ hoje [ `seg` ] +1,0, $ hoje [ `ano` ])))- |
etapa 3.Para exibir um calendário, precisamos de uma tabela com 7 colunas para os dias da semana. O número de linhas, dependendo do número de dias e no primeiro dia do mês. No entanto, precisamos de uma linha de cabeçalho com informações de mês e ano, uma linha subtítulos com o nome dos dias.
2 | // crie uma tabela com as informações de cabeçalho necessárias |
3 | eco `` - |
"-
4 | eco ` |
`. $ hoje [ `mês` ]. " - " . $ hoje [ `ano` ]. " |
---|
`-
`-
`-

Agora que você tem o cabeçalho da mesa, preencha a primeira linha. Não é tão fácil como você não pode apenas escrever 1 na primeira célula, 2 no segundo e assim por diante. Só funciona se o primeiro dia do mês foi segunda-feira, mas e se não? Para decidir isso, precisamos do item do dia da matriz do FirtDay. Com esta informação, podemos preencher as células com um espaço, se necessário. O código para fazer isso é o seguinte:`-
03 | para ( $ I = 1- $ I < $ FirstDay [ `WDY` ]- $ I ++) { |
`-
07 | para ( $ I = $ FirstDay [ `WDY` ]- $ I <= 7- $ I ++) { |
"-
`-
Como próximo passo, precisamos preencher as linhas seguintes. É um pouco mais fácil, só precisamos saber quantas semana inteira temos e preenchemos algumas linhas de mesa da seguinte maneira: 02 | $ Fullweeks = andar (( $ lessday [ `MDY` ]- $ atday ) / 7)- |
04 | para ( $ I = 0- $ I < $ Fullweeks - $ I ++) { |
`-
06 | para ( $ J = 0- $ J <7- $ J ++) { |
"-
`-
Como passo semi final, precisamos adicionar o resto do mês à última linha. Neste caso, é muito fácil: 02 | E se ( $ atday < $ lessday [ `MDY` ]) { |
`-
04 | para ( $ I = 0- $ I <7- $ I ++) { |
06 | E se ( $ atday <= $ lessday [ `MDY` ]) { |
"-
`-
`-
Passo 7.Para tornar o calendário pouco melhor, vamos apresentar alguns design css. O arquivo CSS é muito simples:03 | fronteira : 0px sólido # 888 - |
04 | colapso de fronteira : colapso - |
08 | Border-CollPase: CollPase- |
09 | fronteira : 1px sólido # 888 - |
10 | alinhamento de texto : direito - |
11 | preenchimento-direito : 5px - |
14 | cor de fundo : # F1f3f5 - |
17 | Border-CollPase: CollPase- |
18 | fronteira : 1px sólido # 888 - |
19 | cor de fundo : # E9ecef - |
23 | espessura da fonte : negrito - |
O código completo usando o CSS é o seguinte: 01 | "-// w3c // dtd xhtml 1.0 transitório // pt" "DTD / XHTML1-Transitional.DTD" >
|
04 | Miserável "Estilo / Estilo.css" rel = "Stylesheet" tipo = "Texto / CSS" /> |
08 | função showcalendar () { |
09 | // Obtenha informações do dia chave. |
10 | // Precisamos do primeiro e último dia do mês e o dia real |
12 | $ FirstDay = getDate ( mktime (0,0,0, $ hoje [ `seg` ], 1, $ hoje [ `ano` ])))- |
13 | $ lessday = getDate ( mktime (0,0,0, $ hoje [ `seg` ] +1,0, $ hoje [ `ano` ])))- |
15 | // crie uma tabela com as informações de cabeçalho necessárias |
17 | eco ` |
`. $ hoje [ `mês` ]. " - " . $ hoje [ `ano` ]. " |
---|
`-
`-
`-
22 | // Exibe a primeira linha de calendário com o posicionamento correto |
`-
24 | para ( $ I = 1- $ I < $ FirstDay [ `WDY` ]- $ I ++) { |
`-
28 | para ( $ I = $ FirstDay [ `WDY` ]- $ I <= 7- $ I ++) { |
30 | E se ( $ atday == $ hoje [ `MDY` ]) { |
31 | $ classe = `Class ="atday"` - |
"-
`-
39 | // recebe quantas semanas completas estão no mês real |
40 | $ Fullweeks = andar (( $ lessday [ `MDY` ]- $ atday ) / 7)- |
41 | para ( $ I = 0- $ I < $ Fullweeks - $ I ++) { |
`-
43 | para ( $ J = 0- $ J <7- $ J ++) { |
45 | E se ( $ atday == $ hoje [ `MDY` ]) { |
46 | $ classe = `Class ="atday"` - |
"-
`-
55 | // agora exibe o resto do mês |
56 | E se ( $ atday < $ lessday [ `MDY` ]) { |
`-
58 | para ( $ I = 0- $ I <7- $ I ++) { |
60 | E se ( $ atday == $ hoje [ `MDY` ]) { |
61 | $ classe = `Class ="atday"` - |
66 | E se ( $ atday <= $ lessday [ `MDY` ]) { |
"-
`-
`-
75 | eco ` |
`-
Compartilhe na rede social: