PHP provides the date() function, which provides rich date processing functions. There are two data that need to be obtained now. The first is the total number of days in the month; the second is the day of the week where the first day of the month falls. The numbers represent 0 (indicating Sunday) to 6 (indicating Saturday).
The above data can be easily obtained through the date() function
The code is as follows | Copy code |
代码如下 | 复制代码 |
$month = $_GET['m']?$_GET['m']:date(‘n’); $year = $_GET['y']?$_GET['y']:date(‘Y’); $start_week = date(‘w’,mktime(0,0,0,$month,1,$year)); $day_num = date(‘t’,mktime(0,0,0,$month,1,$year)); $end = false; ?>
星期日 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 |
for($i = 0; $i<$start_week; $i++) { echo “ | ”; }
$j=1;
while($j<=$day_num) { echo “ $j | ”; $week = ($start_week+$j-1)%7;
if($week ==6){ echo “nt n”; if($j != $day_num) echo “tntt”; else $end = true; } $j++; } while($week%7 != 6) { echo “ | ”; $week++; } if(!$end) echo “n ”; ?>
| <🎜>$month = $_GET['m']?$_GET[' m']:date('n'); $year = $_GET['y']?$_GET['y']:date('Y');<🎜><🎜>$start_week = date('w',mktime(0,0,0,$month,1,$year)); $day_num = date('t',mktime(0,0,0,$month,1, $year)); $end = false; ?>
Sunday | MondayTuesday | Wednesday | Thursday | Friday td> | Saturday |
for($i = 0; $i< ;$start_week; $i++) { echo “ | ”; }$j=1;while($j<=$day_num) { echo “$j | ”; $week = ($start_week+$j-1)%7 ;if($week ==6){ echo “nt n”; if($j != $day_num) echo “t< ;tr>ntt”; else $end = true; } $j++; } while($week%7 != 6) { echo “ | ”; $week++; } if(!$end) echo “n tr>”; ?>
|
Advanced class
The code is as follows | Copy code |
class Calendar { private $year; private $month; private $weeks = array('日','一','二','三','四',' Five','six'); function __construct($options = array()) { $this->year = date('Y'); $this-> month = date ('m'); ($key, $vars)) { $this->$key = $value; 🎜> echo ' '; $this->showChangeDate(); $this->showWeeks(); $this->showDays( $this->year,$this->month); echo ' '; ' |
';
foreach($this->weeks as $title)
> echo '< 0, $month, 1, $year);
$starDay = date('w', $firstDay);
$days = date('t', $firstDay);
echo '
';
for ($i=0; $i<$starDay; $i++) {
echo ' | ';
}
for ($j=1; $j<=$days; $j++) {
$i++;
if ($j == date('d')) {
echo ''.$j.' | ';
} else {
echo ''.$j.' | ';
}
if ($i % 7 == 0) {
echo '
';
}
}
echo '
';
}
private function showChangeDate()
{
$url = basename($_SERVER['PHP_SELF']);
echo '';
echo ''.'<<'.' | ';
echo ''.'<'.' | ';
echo ' | ';
echo ''.'>'.' | ';
echo ''.'>>'.' | ';
echo '
';
}
private function preYearUrl($year,$month)
{
$year = ($this->year <= 1970) ? 1970 : $year - 1 ;
return 'year='.$year.'&month='.$month;
}
private function nextYearUrl($year,$month)
{
$year = ($year >= 2038)? 2038 : $year + 1;
return 'year='.$year.'&month='.$month;
}
private function preMonthUrl($year,$month)
{
if ($month == 1) {
$month = 12;
$year = ($year <= 1970) ? 1970 : $year - 1 ;
} else {
$month--;
}
return 'year='.$year.'&month='.$month;
}
private function nextMonthUrl($year,$month)
{
if ($month == 12) {
$month = 1;
$year = ($year >= 2038) ? 2038 : $year + 1;
}else{
$month++;
}
return 'year='.$year.'&month='.$month;
}
}
调用方法
代码如下 代码如下 | 复制代码 |
$params = array(); if (isset($_GET['year']) && isset($_GET['month'])) { $params = array( 'year' => $_GET['year'], 'month' => $_GET['month'], ); } $params['url'] = 'demo.php'; require_once 'calendar.class.php'; ?>
日历demo $cal = new Calendar($params); $cal->display(); ?>
| |
复制代码 |
|
$params = array();
if (isset($_GET['year']) && isset($_GET['month'])) {
$params = array(
'year' => $_GET['year'],
'month' => $_GET['month'],
);
}
$params['url'] = 'demo.php';
require_once 'calendar.class.php';
?>
日历demo
$cal = new Calendar($params);
$cal->display();
?>
http://www.bkjia.com/PHPjc/444655.htmlwww.bkjia.com
trueTechArticlePHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在...