Тази статия ще ви научи как да направите календар в PHP. Ето списък на някои безплатни скриптове за PHP календар. Или можете директно да влезете в сайта PHPKode.com за още безплатни PHP уроци.
Стъпки
Създайте календар в PHP Стъпка 1
Стъпка 1. Съберете необходимата информация, която е важна за показване на действителния месец, и маркирайте действителния ден
Освен това искате да покажете и действителния месец и година. За да направите това, ще ви трябват 3 специални входни данни за деня: действителният ден, първият ден от действителния месец, последният ден от действителния месец
Създайте календар в PHP Стъпка 2
Стъпка 2. Определете кой ден е първият ден, колко е дълъг месецът и, разбира се, кой е действителният ден, с горната информация
Стъпка 3. Използвайте вградената функция PHP:
getdate ()
. Без параметри, тази функция връща информацията за действителния ден в масив, както следва:
01
Масив
02
(
03
[секунди] => 40
04
[минути] => 58
05
[часове] => 21
06
[mday] => 17
07
[wday] => 2
08
[пн] => 6
09
[година] => 2003
10
[yday] => 167
11
[делничен ден] => вторник
12
[месец] => юни
13
[0] => 1055901520
14
)
За да получим последния ден от месеца с дата на получаване, трябва да се опитаме да получим 0. ден на следващия месец. Така че кодът за получаване на информацията изглежда така:
1
<? php
2
$ днес
=
getdate
();
3
$ първи ден
=
getdate
(
mktime
(0, 0, 0,
$ днес
[
"мон"
], 1,
$ днес
[
"година"
]));
4
$ последен ден
=
getdate
(
mktime
(0, 0, 0,
$ днес
[
"мон"
]+1, 0,
$ днес
[
"година"
]));
5
?>
Стъпка 3.
За показване на календар се нуждаем от таблица със 7 колони за дните от седмицата. Броят редове в зависимост от броя на дните и първия ден от месеца. Нуждаем се обаче от заглавен ред с информация за месец и година, ред от подзаглавие с името на дните.
1
<? php
2
// Създаване на таблица с необходимите заглавни данни
3
ехо
''
;
;
4
ехо
'
'
$ днес
[
'месец'
].
" - "
$ днес
[
"година"
].
'
;
5
ехо
'
'
;
6
ехо
'
Пн
Ту
Ние
Th
'
;
7
ехо
'
О
Sa
Вс
8
?>
Създайте календар в PHP Стъпка 3
Сега, когато имате заглавката на таблицата, попълнете първия ред. Не е толкова лесно, тъй като не можете просто да напишете 1 в първата клетка, 2 във втората и така нататък. Работи само ако първият ден от месеца е понеделник, но какво, ако не? За да решим това, се нуждаем от елемента за деня от масива firstDay. С тази информация можем да запълним клетките с място, ако е необходимо. Кодът за това е следният:
01
<? php
'
;
02
ехо
'
03
за
(
$ i
=1;
$ i
<
$ първи ден
[
'wday'
];
$ i
++){
'
;
04
ехо
'
05
}
06
$ actday
= 0;
07
за
(
$ i
=
$ първи ден
[
'wday'
];
$ i
<=7;
$ i
++){
08
$ actday
++;
;
09
ехо
$ actday
10
}
'
;
11
ехо
'
12
?>
Създайте календар в PHP Стъпка 4
Като следваща стъпка трябва да попълним следните редове. Това е малко по -лесно, трябва само да знаем колко пълна седмица имаме и да попълним няколко реда в таблицата, както следва:
01
<? php
02
$ пълни седмици
=
етаж
((
$ последен ден
[
'mday'
]-
$ actday
)/7);
03
04
за
(
$ i
=0;
$ i
<
$ пълни седмици
;
$ i
++){
'
;
05
ехо
'
06
за
(
$ j
=0;
$ j
<7;
$ j
++){
07
$ actday
++;
;
08
ехо
$ actday
09
}
'
;
10
ехо
'
11
}
12
13
?>
Създайте календар в PHP Стъпка 5
Като полуфинална стъпка трябва да добавим остатъка от месеца към последния ред. В този случай е доста лесно:
01
<? php
02
ако
(
$ actday
<
$ последен ден
[
'mday'
]){
'
;
03
ехо
'
04
за
(
$ i
=0;
$ i
<7;
$ i
++){
05
$ actday
++;
06
ако
(
$ actday
<=
$ последен ден
[
'mday'
]){
;
07
ехо
$ actday
08
}
09
иначе
{
'
;
10
ехо
'
11
}
12
}
'
;
13
ехо
'
14
}
15
?>
Стъпка 7.
За да направим календара малко по -хубав, ще въведем CSS дизайн. CSS файлът е много прост:
01
маса {
02
ширина
:
210 пиксела
;
03
граница
:
0 пиксела
твърд
#888
;
04
срутване на границата
:
колапс
;
05
}
06
td {
07
ширина
:
30 пиксела
;
08
border-collpase: collpase;
09
граница
:
1 пиксела
твърд
#888
;
10
подравняване на текст
:
надясно
;
11
подложка-вдясно
:
5 пиксела
;
12
}
13
.days {
14
Цвят на фона
:
#F1F3F5
;
15
}
16
th {
17
border-collpase: collpase;
18
граница
:
1 пиксела
твърд
#888
;
19
Цвят на фона
:
#E9ECEF
;
20
}
21
.actday {
22
Цвят на фона
:
#c22
;
23
тегло на шрифта
:
удебелен
;
24
}
Създайте календар в PHP Стъпка 6
Пълният код, използващ CSS, е следният:
01
<! DOCTYPE html PUBLIC
"-// W3C // DTD XHTML 1.0 Transitional // EN"
"DTD/xhtml1-transitional.dtd"
>
02
03
04
#
"style/style.css"
rel =
"таблица със стилове"
тип =
"текст/css"
05
06
07
<? php
08
функция
showCalendar () {
09
// Получаване на ключова информация за деня.
10
// Нуждаем се от първия и последния ден от месеца и действителния ден
11
$ днес
=
getdate
();
12
$ първи ден
=
getdate
(
mktime
(0, 0, 0,
$ днес
[
"мон"
], 1,
$ днес
[
"година"
]));
13
$ последен ден
=
getdate
(
mktime
(0, 0, 0,
$ днес
[
"мон"
]+1, 0,
$ днес
[
"година"
]));
14
15
// Създаване на таблица с необходимите заглавни данни
16
ехо
''
;
;
17
ехо
'
'
$ днес
[
'месец'
].
" - "
$ днес
[
"година"
].
'
;
18
ехо
'
'
;
19
ехо
'
Пн
Ту
Ние
Th
'
;
20
ехо
'
О
Sa
Вс
21
22
// Показване на първия ред на календара с правилно позициониране
'
;
23
ехо
'
24
за
(
$ i
=1;
$ i
<
$ първи ден
[
'wday'
];
$ i
++){
'
;
25
ехо
'
26
}
27
$ actday
= 0;
28
за
(
$ i
=
$ първи ден
[
'wday'
];
$ i
<=7;
$ i
++){
29
$ actday
++;
30
ако
(
$ actday
==
$ днес
[
'mday'
]) {
31
$ клас
=
'class = "actday"'
;
32
}
иначе
{
33
$ клас
=
;
34
}
;
35
ехо
„$ actday
36
}
'
;
37
ехо
'
38
39
// Вземете колко пълни седмици са в действителния месец