ホームページ > バックエンド開発 > PHPチュートリアル > PHP シンプルなカレンダー プログラム コード_PHP チュートリアル

PHP シンプルなカレンダー プログラム コード_PHP チュートリアル

WBOY
リリース: 2016-07-20 11:11:13
オリジナル
1789 人が閲覧しました

PHP には、豊富な日付処理関数を提供する date() 関数が用意されています。ここで取得する必要があるデータは 2 つあります。1 つ目は月の合計日数で、2 つ目は月の最初の日が属する曜日です。数値は 0 (日曜日を示す) です。 (土曜日を指します)。

上記のデータはdate()関数で簡単に取得できます

コードは以下の通りです コードをコピー

$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;
?>



gt;

< for($i = 0; $i{
echo “”;
}

$j=1;

while($j<=$ day_num)

{

echo "

";
$week = ($start_week+$j-1)%7;

if($week ==6){

echo "nt< /tr>n";

if($j != $day_num)
echo "t

ntt";
else $end = true;
}
$j++;
}
while($week% 7 != 6)
{
echo “”;
$week++;
}
if(!$end)
echo “n”;
?>

高级一点类

gt;日曜日月曜日火曜日 ; 水曜日木曜日金曜日土曜日
$j
';
foreach($this->weeks as $title)
{
echo '';
}
echo '';
}

プライベート関数 showDays($year, $month)
{
$firstDay = mktime(0, 0, 0, $月, 1, $year);
$starDay = date('w', $firstDay);
$days = date('t', $firstDay);

echo '

';
for ($i=0; $i<$starDay; $i++) {
echo '';
}
}
($ j=1; $j $i++;
if ($j == date('d')) {
echo '';
} else {
echo '';
}
if ($i % 7 == 0) {
エコー'';
}
}

echo '';
}

プライベート関数 showChangeDate()
{

$url = ベース名($_SERVER['PHP_SELF ']);

echo '';
echo '';
echo '';
echo '
';

echo '';
echo '';       
echo '';       
echo '
';
echo '';       
echo '';
}

プライベート関数 preyearUrl($year,$month)
{
$year = ($this->year <= 1970) ? 1970 : $year - 1 ;

return 'year='.$year.'&month='.$month;
}

プライベート関数 nextyearUrl($year,$month)
{
$year = ($year > ;= 2038)? 2038 : $year + 1;

return 'year='.$year.'&month='.$month;
}

プライベート関数 preMonthUrl($year,$month)
{
if ($month == 1) ) {
$month = 12;
$year = ($year <= 1970) ? 1970 : $year - 1 ;
} else {
$month--;
}

return 'year='.$year.'&month='.$month;
}

プライベート関数 nextMonthUrl($year,$ month)
{
if ($month == 12) {
$month = 1;
$year = ($year >= 2038) ? 2038 : $year + 1;
}else{
$month++;
}
return 'year='.$year.'&month='.$month;
}

}

代码如下 复制代
class Calendar
{
private $year;
private $month;
private $weeks = array('日','一','二','三','四','五','六');

function __construct($options = array()) {
$this->year = date('Y' );
$this->month = date('m');

$vars = get_class_vars(get_class($this));
foreach ($options as $key=>$value) {
if (array_ key_exists ($key, $vars)) {
$this->$key = $value;
}
}

function display()
{
echo '& lt;テーブルクラス="カレンダー">';
$this->showChangeDate();
$this->showWeeks();
$this->showDays($this->year,$this->month);
echo ' }

プライベート関数 showWeeks()
{
echo '
'.$title. '
 ' j.''.$j.'
'.'<<'.''.'<'.''.'>'.' '.'>>'.'

调使用方法

代码如下 复制代

$params = array();
if (isset($_GET['year']) && isset($_GET[' month'])) {
$params = array(
'year' => $_GET['year'],
'month' => $_GET['month'],
);
}
$params ['url'] = 'demo.php'; ;meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />




$cal = 新しいカレンダー($params);
$ cal->display();
?>   









http://www.bkjia.com/PHPjc/444655.htmlwww.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/444655.html技術記事 PHP には date() 関数が用意されており、この関数は豊富な日次処理機能を提供します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート