検索
ホームページバックエンド開発PHPチュートリアルPHP自作カレンダー_PHPチュートリアル

PHP カスタマイズカレンダー

1. 計算データ
1. 新しいカレンダークラスを作成します
2. 2 つのドロップダウン ボックスのデータを初期化します (年と月)。
3.検索する年と月を初期化します
4. CSSと日数を含むカレンダーの毎日のデータ情報を計算します
コードをコピー
require_once 'calendar.php';
$util = 新しいカレンダー();
$years = array(2012, 2013, 2014, 2015, 2016);//カスタマイズされた年の選択
$months = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);//月の配列
//投稿の年データを取得します
if(empty($_POST['ddlyear'])) {
$year = date('Y');
}else {
$year = $_POST['ddlyear'];
}
//投稿の月次データを取得します
if(empty($_POST['ddlMonth'])) {
$month = date('n');
}else {
$month = $_POST['ddlMonth'];
}
$calendar = $util->threshold($year, $month);//各境界値を取得します
$caculate = $util->caculate($calendar);// カレンダーの日数とスタイルを計算します
$draws = $util->draw($caculate);//テーブルを描画し、テーブルに tr と td を設定します
?>
コードをコピー
2.HTML表示
1. 休日の背景色が異なり、現在の検索年月以外の日の文字色も異なります
2. div の年と月のドロップダウン ボックスを初期化し、現在検索する年と月を選択します
3. データが計算され、どの td がどの tr に属するかがわかります。テーブルを印刷するだけです。
コードをコピー
" データ?>
~ ~ ~ ~ ~ ~ ~
~ ~
表>
コードをコピー
3. カレンダークラス
1. 閾値メソッド、カレンダーの各境界値を生成します
1) 今月の合計日数を計算します
2) 今月の初日と末日、それぞれが何曜日であるかを計算します
3) カレンダーの最初の日付と最後の日付を計算します
コードをコピー
/**
* @deprecated カレンダーの各境界値を生成します
* @param string $year
* @param string $month
* @return 配列
*/
関数のしきい値($year, $month) {
$firstDay = mktime(0, 0, 0, $month, 1, $year);
$lastDay = strtotime('+1 か月 -1 日', $firstDay);
//日数を取得します
$days = date("t", $firstDay);
// 最初の日が何曜日であるかを取得します
$firstDayOfWeek = date("N", $firstDay);
//最終日が何曜日であるかを取得します
$lastDayOfWeek = date('N', $lastDay);
//前月の末日
$lastMonthDate = strtotime('-1 日', $firstDay);
$lastMonthOfLastDay = date('d', $lastMonthDate);
//翌月の初日
$nextMonthDate = strtotime('+1 day', $lastDay);
$nextMonthOfFirstDay = strtotime('+1 day', $lastDay);
// カレンダーの最初の日付
if($firstDayOfWeek == 7)
$firstDate = $firstDay;
その他
$firstDate = strtotime('-'. $firstDayOfWeek .' day', $firstDay);
//カレンダーの最後の日付
if($lastDayOfWeek == 6)
$lastDate = $lastDay;
elseif($lastDayOfWeek == 7)
$lastDate = strtotime('+6 day', $lastDay);
その他
$lastDate = strtotime('+'.(6-$lastDayOfWeek).' day', $lastDay);
配列を返す(
'days' => $days,
'firstDayOfWeek' => $firstDayOfWeek,
'lastDayOfWeek' => $lastDayOfWeek,
'lastMonthOfLastDay' => $lastMonthOfLastDay,
'firstDate' => $firstDate,
'lastDate' => $lastDate,
'年' => $年,
'月' => $month
);
}
コードをコピー
2. 計算方法、カレンダーの日数とスタイルを計算します
1) 先月の日数を計算します。月の最初の日が日曜日ではない場合は、先月の末日を基準に計算する必要があります。
2) 今月の日をトラバースし、休日の場合は特別な CSS スタイルを追加します
3) 日曜日、土曜日、営業日の3つの状況に分けて翌月の日数を計算します
コードをコピー
/**
* @author Pwstrick
* @param array 閾値法で計算した$calendarデータ
* @deprecated カレンダーの日数とスタイルを計算します
*/
関数 caculate($calendar) {
$days = $calendar['days'];
$firstDayOfWeek = $calendar['firstDayOfWeek'];// 今月の週の最初の日
$lastDayOfWeek = $calendar['lastDayOfWeek'];//今月の最終日の週
$lastMonthOfLastDay = $calendar['lastMonthOfLastDay'];// 前月の最終日
$year = $calendar['year'];
$month = $calendar['month'];
$dates = array();
if($firstDayOfWeek != 7) {
$lastDays = array();
$current = $lastMonthOfLastDay;// 前月の最終日
for ($i = 0; $i
array_push($lastDays, $current);// 前月の日数を加算します
$current--;
}
$lastDays = array_reverse($lastDays);// 逆順
foreach ($lastDays as $index => $day) {
array_push($dates, array('day' => $day, 'tdclass' => ($index ==0 ?'rest':''), 'pclass' => 'outter'));
}
}
//今月のカレンダー情報
for ($i = 1; $i
$isRest = $this->_checkIsRest($year, $month, $i);
// 休息日かどうかを判断する
array_push($dates, array('day' => $i, 'tdclass' => ($isRest ?'rest':''), 'pclass' => ''));
}
//来月のカレンダー情報
if($lastDayOfWeek == 7) {//最終日は日曜日です
$length = 6;
}
elseif($lastDayOfWeek == 6) {//最終日は土曜日です
$length = 0;
}else {
$length = 6 - $lastDayOfWeek;
}
for ($i = 1; $i array_push($dates, array('day' => $i, 'tdclass' => ($i==$length ?'rest':''), 'pclass' => 'outter')) ;
}
$dates を返します;
}
コードをコピー
3. Drawメソッド、テーブルを描画し、テーブルにtrとtdを設定します
1) tableタグを使ってデータを表示するので、ここでは各trの下にtdを配置する必要があります
2)$index % 7 == 0 テーブルの各行の最初の列を計算します
3)$index % 7 == 6 || $index == ($length-1) 各行の最後の列、または$caculateの最後のデータを計算します
4)各行の配列である$trに真ん中の行を追加します
コードをコピー
/**
* @author Pwstrick
* @param array $caculate caculate メソッドで計算されたデータ
* @deprecated テーブルを描画し、テーブルに tr と td を設定します
*/
関数draw($caculate) {
$tr = 配列();
$length = count($caculate);
$result = array();
foreach ($caculate as $index => $date) {
if($index % 7 == 0) {//最初の列
$tr = array($date);
}elseif($index % 7 == 6 || $index == ($length-1)) {
array_push($tr, $date);
array_push($result, $tr);//返されたデータに追加します
$tr = array();//配列リストをクリアします
}else {
array_push($tr, $date);
}
}
$result;
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/885672.html技術記事 PHP自作カレンダー 1. データを計算する 1. 新しい Calendar クラスを作成する 2. 年と月の 2 つのドロップダウン ボックスのデータを初期化する 3. 検索する年と月を初期化する 4. カレンダーを計算する...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
win11双屏幕日历在第二台显示器上不存在怎么办?win11双屏幕日历在第二台显示器上不存在怎么办?Jun 12, 2024 pm 05:47 PM

在Windows11中组织日常工作和例行公事的一项重要工具是在任务栏中显示时间和日期。此功能通常位于屏幕的右下角,可让您即时访问时间和日期。通过单击此区域,您可以调出日历,从而更轻松地检查即将到来的约会和日期,而无需打开单独的应用程序。但是,如果您使用多个显示器,则此功能可能会遇到问题。具体来说,虽然时钟和日期显示在所有连接的显示器上的任务栏上,但单击第二个显示器上的日期和时间来显示日历的功能不可用。截至目前,此功能仅在主显示屏上起作用-它与Windows10不同,在Windows10中,单击任

win10日历显示周数win10日历显示周数Jan 04, 2024 am 08:41 AM

很多用户们想要通过win10日历这个工具来查看当前天数,但是日历不会自动显示这一功能,其实我们只需要通过简单的设置,就能够看到今年的累计周数了哦~win10日历显示周数设置教程:1、在桌面左下角的搜索中输入日历并且打开应用。2、在打开的日历应用中,点击左下角的“齿轮”图标后,会在右侧弹出设置,我们点击“日历设置”3、继续在打开的日历设置中,找到“周数”然后将周数选项调整到“一年中的第一天”即可。4、在完成以上设置后,点击“周”即可看到今年的周数统计了。

Outlook日历不同步;Outlook日历不同步;Mar 26, 2024 am 09:36 AM

如果您的Outlook日历无法与Google日历、Teams、iPhone、Android、Zoom、Office帐户等同步,请执行以下步骤来解决问题。日历应用程序可以连接到其他日历服务,如谷歌日历、iPhone、安卓、微软Office365等,这是非常有用的,因为它可以自动同步。但如果OutlookCalendar无法与第三方日历同步怎么办?可能的原因可能是选择错误的日历进行同步,日历不可见,后台应用程序干扰,过时的Outlook应用程序或日历应用程序,等等。修复Outlook日历不同步的初步

win10日历事件没有弹窗提醒怎么办? win10日历事件提醒没了的恢复方法win10日历事件没有弹窗提醒怎么办? win10日历事件提醒没了的恢复方法Jun 09, 2024 pm 02:52 PM

日历可以帮助用户们记录下你的行程,甚至还可以设置提醒,但是也有不少的用户们在询问win10日历事件提醒不弹出怎么办?用户们可以先检查一下windows更新情况或者是清除windows应用商店缓存来进行操作就可以了。下面就让本站来为用户们来仔细的介绍一下win10日历事件提醒不弹出问题解析吧。添加日历事件在系统菜单中点击“日历”程序。鼠标左键点击日历中的日期。在编辑窗口输入事件名称和提醒时间,点击“保存”按钮即可添加事件了。win10日历事件提醒不弹出问题解决

无法打开win10右下角的日历无法打开win10右下角的日历Dec 26, 2023 pm 05:07 PM

有使用win0系统的小伙伴有遇见win10日历打不开的情况,这个是正常的电脑的小故障而已,在win10系统的隐私设置里可以解决,今天小编带来了详细的解决方法,下面大家一起来看看吧。win10右下角的日历打不开解决方法1、在win10系统中点击开始→点击上方的程序列表按钮→往下找到拼音(中文)R→日历2、初次使用,可能新事件会点不开(鼠标靠上去,不会有选中的深蓝色),可以在隐私中设置一下。点击桌面左上方的三道杠图标→底部就会有设置菜单;3、在弹出的界面中点击隐私;4、如果之前使用过设置,可以点击左

无期迷途采购办:日历和生日系列周边上新!无期迷途采购办:日历和生日系列周边上新!Feb 29, 2024 pm 12:00 PM

无期迷途采购办确定将于2月28日上午11点更新,玩家可以前往淘宝搜索无期迷途采购办选择店铺分类进行购买,本次为大家带来的是MBCC生日会系列及2024台历周边,一起来看看本次的商品详情。无期迷途采购办:日历和生日系列周边上新!无期迷途采购办上新!—预售时间:2024年2月28日11:00——2024年3月13日23:59采购地址:淘宝搜索【无期迷途采购办】选择【店铺】分类即可进店采购;周边介绍:本次周边上新为MBCC生日会系列及2024台历周边,请点击长图查阅详情。采购办上新周边介绍—MBCC生

win11时间老是不准确怎么解决?Win11时间调整教程快速解决时间不准确问题win11时间老是不准确怎么解决?Win11时间调整教程快速解决时间不准确问题Apr 19, 2024 am 09:31 AM

如果您的Windows11计算机显示时间错误,可能会导致很多问题,甚至阻止您连接到互联网。事实上,当系统显示不正确的日期和时间时,某些应用程序会拒绝打开或运行。那么应该如何解决这个问题呢?下面一起来看看吧!方法一:1、我们首先右键点击下方任务栏空白处,选择任务栏设置2、在任务栏设置中找到右侧的taskbarcorneroverflow3、然后在它上方找到clock或时钟选择开启即可。方法二:1、按下键盘快捷键win+r调出运行,输入regedit回车确定。2、打开注册表编辑器,在其中找到HKEY

如何使用 Vue 实现日历组件?如何使用 Vue 实现日历组件?Jun 25, 2023 pm 01:28 PM

Vue是一款非常流行的前端框架,它提供了很多工具和功能,如组件化、数据绑定、事件处理等,能够帮助开发者构建出高效、灵活和易维护的Web应用程序。在这篇文章中,我来介绍如何使用Vue实现一个日历组件。1、需求分析首先,我们需要分析一下这个日历组件的需求。一个基本的日历应该具备以下功能:展示当前月份的日历页面;支持切换到前一月或下一月;支持点击某一天,

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン