Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 PHP -- ден, седмица, месец, година: Календар
  1. РНР – текуща дата & РНР и календарните функции
  2. Календар с РНР
  3. Използване на календара & Бележки по кода
PureEvil
     
Автор  PureEvil (16.01.2006 00:43)  съобщение до автора
Погледнат  4551 пъти  добави към любими
Оценка  добави коментар
Гласове  3  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 2 / 3

 




Календар с РНР

Код на календара(тъй като е малко стар – html и РНР са леко смесени)
Функцията calendar()

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
//
arrays
 
$arrDays  = array("Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя");
 
$arrMonth = array(
 
"01" => "Януари",
 
"02" => "Февруари",
 
"03" => "Март",
 
"04" => "Април",
 
"05" => "Май",
 
"06" => "Юни",
 
"07" => "Юли",
 
"08" => "Август",
 
"09" => "Септември",
 
"10" => "Октомври",
 
"11" => "Ноември",
 
"12" => "Декември"
 
);

/**************************************************
|*
function: calendar($day, $month, $year);       *|
|* 
$day   - текущ ден;                           *|
|* 
$month - месец;                               *|
|* 
$year  - година;                              *|
|*
purpose: показва календар за даден месец;      *|
|*
outcome: html резултат;                        *|
**************************************************/
function calendar($day, $month, $year) {
 
global $arrDays, $arrMonth, $db, $dbpref, $submit;
 
$current = @unixtojd(mktime(0, 0, 0, $month, 1, $year));
 
$today = @cal_from_jd($current, CAL_GREGORIAN);
 
$position = $today["dow"];
 
if ($position == 0) $position = 6;
 
$max = @cal_days_in_month(CAL_GREGORIAN, $month, $year);
 
if ( strlen($month) == 1) $month = "0".$month;
 
if ( ( $month == date("m") ) and ( $year == date("Y") ) ) $day = date("d");     //задава текущия ден след промени в календара
 
//opredelqne na linkovete
 if
($month == 12) {
 
$downmonth = $month - 1;
 
$upmonth = 01;
 
$upyear   = $year + 1;
 
$downyear = $year;
 
}
 
elseif ($month == 01) {
 
$downmonth = 12;
 
$upmonth = $month + 1;
 
$upyear   = $year;
 
$downyear = $year - 1;
 
}
 
else {
 
$downmonth = $month - 1;
 
$upmonth = $month + 1;
 
$upyear   = $year;
 
$downyear = $year;
 
}
 
 
foreach ($_GET as $key => $value) {
 
if ($key == "month") {
  
$getup   .= "month=".$upmonth."&";
  
$getdown .= "month=".$downmonth."&";
 
}
 
elseif ($key == "year") {
  
$getup   .= "year=".$upyear."&";
  
$getdown .= "year=".$downyear."&";
 
}
 
else {
  
$getup   .= $key."=".$value."&";
  
$getdown .= $key."=".$value."&";
 
}
 }

 
if ( !ereg("month", $getdown)) $getdown .= "month=".$downmonth."&year=".$downyear;
 
if ( !ereg("month", $getup)) $getup .= "month=".$upmonth."&year=".$upyear;
//krai na opredelqneto

 
$res .= "<div class="under"><b><a href="?".$getdown."">«</a> </b> ".$arrMonth[$month]." ".$year." <b> <a href="?".$getup."">»</a></b></div>n<div id="cal">n<div class="week">n";
 
for ($i = 0; $i < count($arrDays); $i++) {
 
$res .= "<div class="day" title="".$arrDays[$i]."">".$arrDays[$i]{0}."</div>n";
 
}
 
$res .= "</div>n<div class="week">n";
 
for ($i = 1; $i < ($max + $position); $i++) {
 
if ($i < $position) $res .= "<div class="noday"> </div>n";
 
else {
  
$post = $db->operation("select id from ".$dbpref."comments where date = '".$year."-".$month."-".($i - $position + 1)."' ");
  
if ( $post > 0) {
   
if ( (($i - $position + 1) == $day) and ($month == date("m")) )
    
$res .= "<div class="cday"><a href="?act=viewdate&day=".($i - $position + 1)."&month=".$month."&year=".$year."" title="".$post."">".($i - $position + 1)."</a></div>n";
   
else
    
$res .= "<div class="day"><a href="?act=viewdate&day=".($i - $position + 1)."&month=".$month."&year=".$year."" title="".$post."">".($i - $position + 1)."</a></div>n";
  
}
  
else {
      
if ( (($i - $position + 1) == $day) and $month == date("m")) $res .= "<div class="cday">".($i - $position + 1)."</div>n";
      
else $res .= "<div class="day">".($i - $position + 1)."</div>n";
  
}
  
if ( ($i % 7) == 0 AND ($i != 1) ) $res .= "</div>n<div class="week">n";
 
}
 }
 
if ( ( ($i - $position + 1) % 7) != 0) $res .= "</div>n";
 
return $res."</div>";
}

CSS файла:
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

#cal {
 
float: right;
 
margin-bottom: 2px;
 
margin-right: -11px;
 
padding: 0;
 
width: 100%;
}

.
week {
 
margin: 0;
 
width: 100%;
 
padding: 0;
}

div.day {
 
float: left;
 
width: 20px;
 
margin: 1px;
 
border: 1px solid #000;
 
text-align: center;
}

div.day a {
 
width: 100%;
 
color: #fff;
 
background-color: #000;
 
text-decoration: none;
}

div.day a:hover {
 
color: #ff6600;
 
text-decoration: none;
}

.
cday {
 
float: left;
 
background-color: #B0FDB5;
 
width: 20px;
 
margin: 1px;
 
border: 1px solid #000;
 
text-align: center;
}

.
cday a {
 
width: 100%;
 
color: #fff;
 
background-color: #000;
 
text-decoration: none;
}

.
cday a:hover {
 
color: #ff6600;
 
text-decoration: none;
}

.
noday {
 
float: left;
 
width: 22px;
 
margin: 1px;
 
font-size: 0px;
 
text-align: center;
}



 << Предишна страница Следваща страница >> 


Ключови думи: дата работа с дати работа с часове PHP


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008