Энэ нийтлэлд PHP дээр хуанли хэрхэн хийхийг зааж өгөх болно. PHP календарийн үнэгүй скриптүүдийг энд жагсаав. Эсвэл та PHPKode.com сайт руу орж үнэгүй PHP заавар авах боломжтой.
Алхам
Алхам 1. Бодит сарыг харуулахын тулд шаардлагатай мэдээллийг цуглуулж, бодит өдрийг тодруулна уу
Үүнээс гадна та сар, жилийг харуулахыг хүсч байна. Үүнийг хийхийн тулд танд 3 тусгай өдрийн оролт хэрэгтэй болно: бодит өдөр, тухайн сарын эхний өдөр, тухайн сарын сүүлийн өдөр
Алхам 2. Эхний өдөр ямар өдөр байсан, сар хэр урт вэ, мэдээж яг ямар өдөр болохыг дээрх мэдээллээр тодорхойл
Алхам 3. PHP суулгагдсан функцийг ашиглана уу:
getdate ()
. Параметргүй бол энэ функц нь массив дахь өдрийн бодит мэдээллийг дараах байдлаар буцаана.
11
|
[ажлын өдөр] => Мягмар гараг
|
Сарын сүүлчийн өдрийг авах огноог авахын тулд бид дараагийн сарын 0. өдрийг авахыг хичээх хэрэгтэй. Тиймээс мэдээлэл авах код дараах байдлаар харагдаж байна.
2
|
өнөөдөр доллар
=
огноо
();
|
3
|
$ FirstDay
=
огноо
(
mktime
(0, 0, 0,
өнөөдөр доллар
[
'Мон'
], 1,
өнөөдөр доллар
[
'жил'
]));
|
4
|
$ lastDay
=
огноо
(
mktime
(0, 0, 0,
өнөөдөр доллар
[
'Мон'
]+1, 0,
өнөөдөр доллар
[
'жил'
]));
|
Алхам 3.
Хуанли харуулахын тулд бидэнд долоо хоногийн өдрүүдэд 7 багана бүхий хүснэгт хэрэгтэй болно. Өдрийн тоо, сарын эхний өдрөөс хамааран шугамын тоо. Гэсэн хэдий ч бидэнд сар, жилийн мэдээлэл бүхий толгой мөр, өдрийн нэр бүхий дэд гарчиг хэрэгтэй болно.
2
|
// Шаардлагатай толгой мэдээллээр хүснэгт үүсгэнэ үү
|
;
4
|
цуурай
'
|
' |
өнөөдөр доллар
[
'сар'
].
" - "
өнөөдөр доллар
[
'жил'
].
'
;
'
;
'
;
Одоо та хүснэгтийн толгойтой болсон тул эхний мөрийг бөглөнө үү. Эхний нүдэнд 1, хоёр дахь хэсэгт 2 гэх мэтийг бичих боломжгүй тул энэ нь тийм ч хялбар биш юм. Энэ нь зөвхөн сарын эхний өдөр Даваа гариг байсан тохиолдолд л ажилладаг, гэхдээ үгүй бол яах вэ? Үүнийг шийдэхийн тулд бидэнд firstDay массивын өдрийн зүйл хэрэгтэй болно. Энэхүү мэдээллийн тусламжтайгаар шаардлагатай бол нүднүүдийг хоосон зайгаар дүүргэх боломжтой. Үүнийг хийх код дараах байдалтай байна.
'
;
03
|
-ийн хувьд
(
$ i
=1;
$ i
<
$ FirstDay
[
"өдөр"
];
$ i
++){
|
'
;
07
|
-ийн хувьд
(
$ i
=
$ FirstDay
[
"өдөр"
];
$ i
<=7;
$ i
++){
|
;
'
;
Дараагийн алхам бол бид дараах мөрүүдийг бөглөх ёстой. Энэ нь арай хялбар, бидэнд хэдэн долоо хоног байгааг мэдэх шаардлагатай бөгөөд хүснэгтийн мөрүүдийг дараах байдлаар бөглөх хэрэгтэй.
02
|
$ бүтэн долоо хоног
=
шал
((
$ lastDay
[
'өдөр'
]-
$ actday
)/7);
|
04
|
-ийн хувьд
(
$ i
=0;
$ i
<
$ бүтэн долоо хоног
;
$ i
++){
|
'
;
06
|
-ийн хувьд
(
$ j
=0;
$ j
<7;
$ j
++){
|
;
'
;
Хагас эцсийн алхам болохын тулд бид сарын үлдсэн хэсгийг сүүлчийн мөрөнд нэмэх хэрэгтэй. Энэ тохиолдолд энэ нь маш энгийн:
02
|
хэрэв
(
$ actday
<
$ lastDay
[
'өдөр'
]){
|
'
;
04
|
-ийн хувьд
(
$ i
=0;
$ i
<7;
$ i
++){
|
06
|
хэрэв
(
$ actday
<=
$ lastDay
[
'өдөр'
]){
|
;
'
;
'
;
Алхам 7.
Хуанлийг арай гоё болгохын тулд бид CSS -ийн зарим загварыг танилцуулах болно. CSS файл нь маш энгийн:
03
|
хил
:
0 пиксел
хатуу
#888
;
|
04
|
хилийн нуралт
:
нурах
;
|
08
|
border-collpase: collpase;
|
09
|
хил
:
1 пиксел
хатуу
#888
;
|
10
|
текстийг тэгшлэх
:
зөв
;
|
11
|
бөглөх-баруун
:
5 пиксел
;
|
14
|
дэвсгэр өнгө
:
#F1F3F5
;
|
17
|
border-collpase: collpase;
|
18
|
хил
:
1 пиксел
хатуу
#888
;
|
19
|
дэвсгэр өнгө
:
#E9ECEF
;
|
23
|
фонтын жин
:
зоригтой
;
|
CSS ашиглан бүрэн код нь дараах байдалтай байна.
01
|
<! DOCTYPE html олон нийтийн
"-// W3C // DTD XHTML 1.0 Шилжилтийн // EN"
"DTD/xhtml1-transitional.dtd"
|
04
|
#
"style/style.css"
rel =
"загварын хуудас"
төрөл =
"текст/css"
|
08
|
функц
showCalendar () {
|
09
|
// Өдрийн чухал мэдээллийг авах.
|
10
|
// Бидэнд сарын эхний ба сүүлийн өдөр, бодит өдөр хэрэгтэй
|
11
|
өнөөдөр доллар
=
огноо
();
|
12
|
$ FirstDay
=
огноо
(
mktime
(0, 0, 0,
өнөөдөр доллар
[
'Мон'
], 1,
өнөөдөр доллар
[
'жил'
]));
|
13
|
$ lastDay
=
огноо
(
mktime
(0, 0, 0,
өнөөдөр доллар
[
'Мон'
]+1, 0,
өнөөдөр доллар
[
'жил'
]));
|
15
|
// Шаардлагатай толгой мэдээллээр хүснэгт үүсгэнэ үү
|
;
17
|
цуурай
'
|
' |
өнөөдөр доллар
[
'сар'
].
" - "
өнөөдөр доллар
[
'жил'
].
'
;
'
;
'
;
22
|
// Зөв хуанлийн эхний хуанлийн мөрийг харуулна
|
'
;
24
|
-ийн хувьд
(
$ i
=1;
$ i
<
$ FirstDay
[
"өдөр"
];
$ i
++){
|
'
;
28
|
-ийн хувьд
(
$ i
=
$ FirstDay
[
"өдөр"
];
$ i
<=7;
$ i
++){
|
30
|
хэрэв
(
$ actday
==
өнөөдөр доллар
[
'өдөр'
]) {
|
31
|
$ ангилал
=
'class = "actday"'
;
|
;
'
;
39
|
// Бодит сард хэдэн бүтэн долоо хоног байгааг олж мэдэх
|
40
|
$ бүтэн долоо хоног
=
шал
((
$ lastDay
[
'өдөр'
]-
$ actday
)/7);
|
41
|
-ийн хувьд
(
$ i
=0;
$ i
<
$ бүтэн долоо хоног
;
$ i
++){
|
'
;
43
|
-ийн хувьд
(
$ j
=0;
$ j
<7;
$ j
++){
|
45
|
хэрэв
(
$ actday
==
өнөөдөр доллар
[
'өдөр'
]) {
|
46
|
$ ангилал
=
'class = "actday"'
;
|
;
'
;
55
|
// Одоо сарын үлдсэн хэсгийг харуул
|
56
|
хэрэв
(
$ actday
<
$ lastDay
[
'өдөр'
]){
|
'
;
58
|
-ийн хувьд
(
$ i
=0;
$ i
<7;
$ i
++){
|
60
|
хэрэв
(
$ actday
==
өнөөдөр доллар
[
'өдөр'
]) {
|
61
|
$ ангилал
=
'class = "actday"'
;
|
66
|
хэрэв
(
$ actday
<=
$ lastDay
[
'өдөр'
]){
|
;
'
;
'
;
'
;