php 单行日历,第二节 PHP 实现日历功能

>[success] # PHP 实现日历功能

![](https://box.kancloud.cn/bb1b932d357938a48ae6c4a241b574e0_505x243.png)

~~~php

//show_calendar.php

//设定用于一个脚本中所有日期时间函数的默认时区

if (function_exists('date_default_timezone_set')) {

date_default_timezone_set('PRC');

}

function post_input($data)

{

$data = trim($data);

$data = stripslashes($data);

$data = htmlspecialchars($data);

return $data;

}

$year = isset($_GET["y"]) ? post_input($_GET["y"]) : date("Y");

$month = isset($_GET["m"]) ? post_input($_GET["m"]) : date("m");

if ($month > 12) {

$month = 1;

$year++;

} elseif ($month < 0) {

$month = 12;

$year--;

}

$t = strtotime("$year-$month-1");

$last = date('t', strtotime('-1 month', $t));

$start = date('w', $t) ? range($last - date('w', $t) + 1, $last) : range($last - 6, $last);

$days = range(1, date('t', $t));

$end = range(1, 6 * 7 - count($start) - count($days));

$daytable = "

";

$w = 1;

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

if ($w % 7 == 0) {

$daytable .= "

$start[$i]";

} else {

$daytable .= "

$start[$i]";

}

$w++;

}

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

if ($w % 7 == 0) {

$daytable .= "

$days[$i]";

} else {

$daytable .= "

$days[$i]";

}

$w++;

}

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

if ($w % 7 == 0) {

$daytable .= "

$end[$i]";

} else {

$daytable .= "

$end[$i]";

}

$w++;

}

$daytable .= "

";

?>

td {

text-align: center;

}

td[data-title='last'] {

color: #898989;

cursor: pointer;

background: #fdf5ce none repeat scroll 0 0;

}

td:hover {

position: relative;

}

td[data-title='last']:hover:before {

content: attr(data-title);

position: absolute;

left: 5px;

top: 100%;

background: #ff8403 none repeat scroll 0 0;

color: #99FFFF;

width: 70px;

height: 30px;

line-height: 30px;

border-radius: 5px;

box-shadow: 3px 3px 3px #666666;

}

上一月

<?php echo $year ?>年<?php echo $month ?>月份

下一月

星期日星期一星期二星期三星期四星期五星期六

~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值