PHP实现简单日历类编写

2025-05-29 0 90

用PHP实现日历类的编写,供大家参考,具体内容如下

calendar.class.php

?

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

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123
<?php

/*

* 创建一个日历类

*

*

*/

//修改默认时区

date_default_timezone_set("PRC");

class Calendar {

private $year;

private $month;

private $day; //当月总天数

private $first_week; //每月的第一天是星期几

//构造函数

function __construct() {

$this->year = isset($_GET['year'])?$_GET['year']:date("Y");

$this->month = isset($_GET["month"])?$_GET["month"]:date("m");

$this->first_week = date("w", mktime(0, 0 ,0, $this->month, 1, $this->year));

$this->day = date("t", mktime(0, 0 ,0, $this->month, 1, $this->year));

}

function showCalendar() {

// echo $this->year."年".$this->month."月".$this->first_week."天".$this->day;

echo "<table align='center'>"; //用表格输出

$this->chageDate("index.php"); //用于用户调整年月份

$this->weekList();//显示星期

$this->dayList(); //显示天数

echo "</table>";

}

//1、显示星期

private function weekList() {

$week = array("日","一","二","三","四","五","六");

echo "<tr>";

for ($i = 0; $i < count($week); $i++) {

echo "<th>".$week[$i]."</th>";

}

echo "</tr>";

}

//2.显示天数

private function dayList() {

$color = "#2ca50c";

echo "<tr>";

for ($i = 0; $i < $this->first_week; $i++) { //输出空格,弥补当前月空缺部分

echo "<td bgcolor='#2ca50c'> </td>";

}

for ($k = 1; $i <= $this->day; $k++) {

$i++;

if ($k == date("d")) echo "<td id='nowd'>".$k."</td>"; //是今天,加效果

else echo "<td bgcolor=$color>".$k."</td>";

if ($i % 7 == 0) {

echo "</tr><tr>"; //每7天一次换行

if ($i % 2 == 0) $color = "#2ca50c";

else $color = "#9ddb27"; //实现各行换色的效果

}

}

while ($i % 7 != 0) { //将剩余的空格补完

echo "<td bgcolor='#2ca50c'> </td>";

$i++;

}

echo "</tr>";

}

//3、用于用户调整天数

private function chageDate($url="index.php") {

echo "<tr>";

echo "<caption><h1>".$this->year."年".$this->month."月</h1></caption>";

echo "</tr>";

echo "<tr>";

echo "<td>"."<a href='?".$this->prevYear($this->year,$this->month)."'>"."<"."</a>";

echo "<td>"."<a href='?".$this->prevMonth($this->year,$this->month)."'>"."<<"."</a>";

echo "<td colspan='3'>";

echo '<select οnchange="window.location=\\''.$url.'?year=\\'+this.options[selectedIndex].value+\\'&month='.$this->month.'\\'">';

for ($year = 2038; $year >= 1970; $year--) {

$selected = ($year == $this->year)?"selected":"";

echo '<option '.$selected. ' value="'.$year.'">'.$year.'</option>';

//echo '<option '.$selected.' value="'.$year.'">'.$year.'</option>';

}

echo "</select>";

echo '<select name="month" οnchange="window.location=\\''.$url.'?year='.$this->year.'&month=\\'+this.options[selectedIndex].value">';

for($month=1;$month <= 12;$month++){

$selected1 = ($month == $this->month) ? "selected" : "";

echo '<option '.$selected1.' value="'.$month.'">'.$month.'</option>';

}

echo '</select>';

echo "</td>";

echo "<td>"."<a href='?".$this->nextMonth($this->year,$this->month)."'>".">>"."</a>";

echo "<td>"."<a href='?".$this->nextYear($this->year,$this->month)."'>".">"."</a>";

echo "</tr>";

}

private function prevYear($year, $month) { //获取上一年的数据

$year--;

if ($year < 1970) $year = 1970;

return "year={$year}&month={$month}";

}

private function prevMonth($year, $month) {

if ($month == 1) {

$year--;

if ($year < 1970) $year = 1970;

$month = 12;

}else $month--;

return "year={$year}&month={$month}";

}

private function nextYear($year, $month) { //获取上一年的数据

$year++;

if ($year > 2038) $year = 2038;

return "year={$year}&month={$month}";

}

private function nextMonth($year, $month) {

if ($month == 12) {

$year++;

if ($year > 2038) $year = 2038;

$month = 1;

}else $month++;

return "year={$year}&month={$month}";

}

}

主页 index.php

?

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
<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>日历显示</title>

<style>

table {

border:1px solid #050;

margin: 100px auto;

}

th {

width: 30px;

background-color: #0CC;

color: #fff;

height: 30px;

font-size: 20px;

}

#nowd {

color: yellow;

background: #F00;

}

td {

width: 30px;

text-align: center;

height: 25px;

color: #fff;

}

a {

display: block;

width: 35px;

height: 35px;

background: #0F9;

text-decoration: none;

text-align: center;

line-height: 35px;

}

a:hover {

background: #CF0;

color: #fff;

font-size: 20px;

}

</style>

</head>

<body>

<?php

include "calendar.class.php";

$ca = new Calendar();

$ca->showCalendar();

?>

</body>

</html>

PHP实现简单日历类编写

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/shofe11/article/details/37594187

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP实现简单日历类编写 https://www.kuaiidc.com/91059.html

相关文章

发表评论
暂无评论