Heim Web-Frontend js-Tutorial js日历功能对象_javascript技巧

js日历功能对象_javascript技巧

May 16, 2016 pm 05:57 PM
日历

需求产生问题:本来想在网上找个js代码,可是发现要么太复杂,要么不好控制,要么兼容性不好......
问题分析: 发现不是优秀的就是最好的.... 适合自己的就是最好的。
问题解决: 决定自己写一个日历 功能。
代码呈现:
日历主程序

复制代码 代码如下:

var calendar={
STR:function(){with(this.data)return ""+Y+"年,"+M+"月,"+D+"号,星期"+WN[W];},
V:function(o,spli,sx){with(this)return o[sx]=""+data.Y+spli+data.M+spli+data.D},
T:function(){with(this)return data.TABLE},
dnY:function(){with(this){calendarChange(data.Y+1,data.M-1,data.D)}},
dnM:function(){with(this){calendarChange(data.Y,data.M,data.D)}},
upY:function(){with(this){calendarChange(data.Y-1,data.M-1,data.D)}},
upM:function(){with(this){calendarChange(data.Y,data.M-2,data.D)}},
day:function(o){with(this){data.D=o;calendarChange(data.Y,data.M-1,data.D)}},
data:{Y:null,M:null,D:null,W:null,H:null,U:null,YMD:null,YMD_C:"hot",ARR:null,TABLE:null,MN:null,WN:null,SELECT:null,TADAY:new Date(),TADAY_C:"taday",ROWLEN:7,VALUE:null},
creatTable:function(){with(this){
var table=""
for(var i=0;i"+t+"";}
for(var i in data.ARR){var showText=data.ARR[i]||" ",br=i%data.ROWLEN,title,css;
if(!br){table+="
"};
data.ARR[i]?title=data.Y+"-"+data.M+"-"+showText:title="";
String(data.TADAY.getDate())==String(data.ARR[i])?
(data.YMD.getFullYear()==data.TADAY.getFullYear()&&data.YMD.getMonth()==data.TADAY.getMonth()&&data.YMD.getDate()==data.TADAY.getDate())?
css=data.TADAY_C+" "+data.YMD_C:css=data.YMD_C:css="";
table+="";
}table+="
"+showText+"
"
data.TABLE=table;return table;
}},
calendarStarArr:function(userY,userM,userD){with(this){
var Arr=[];
var now = new Date(userY,userM,userD);
var LastDay = now.getLastDay();
var FirstDayofWeek = now.FirstDayofWeek();
data.YMD=now;data.Y=now.getFullYear();
data.M=now.getMonth()+1;data.D=now.getDate();data.W=now.getDay();
while(Arr.length!=FirstDayofWeek){Arr.push(false)}
for(var i=0;iwhile(Arr.length%data.ROWLEN!=0){Arr.push(false)}
data.ARR=Arr;return Arr;
}},
calendarChange:function(userY,userM,userD){with(this){
calendarStarArr(userY,userM,userD);creatTable()
}},
calendarStar:function(userY,userM,userD){with(this){
data.MN = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二"];
data.WN = ["日","一","二","三","四","五","六"];
calendarChange(userY,userM,userD);
}},
init:function(){with(this){
Date.prototype.getLastDay=function(){return(new Date(this.getFullYear(),this.getMonth()+1,0).getDate())}
Date.prototype.FirstDayofWeek=function(){return(new Date(this.getFullYear(),this.getMonth(),1).getDay())}
calendarStar(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())
}}
}

代码应用讲解:
复制代码 代码如下:

var aa=new calendar()//创建一个新日历
aa.init()//日历初始

复制代码 代码如下:

obj.innerHTML=aa.STR()//显示日期字符串
obj.innerHTML=aa.T()//显示表格
aa.dnY()//下一年
aa.upY()//上一年
aa.dnM()//下一月
aa.upM()//上一月
aa.day(Number)//改变日历显示的几号(Number 需要传一个数值型参数)

这个日历对象实现的是日历的核心功能功能,
具体是日历放在哪里,
哪个事件触发哪个函数这个我没有写,
要是那样的话就失去我写这个日历的原有目的了。
怎么大家都没反应,我弄个例子,大家看下吧
复制代码 代码如下:




js日历效果-wangzf


<script> <BR>var calendar={ <BR>STR:function(){with(this.data)return ""+Y+"年,"+M+"月,"+D+"号,星期"+WN[W];}, <BR>V:function(spli){with(this)return ""+data.Y+spli+data.M+spli+data.D}, <BR>T:function(){with(this)return data.TABLE}, <BR>dnY:function(){with(this){calendarChange(data.Y+1,data.M-1,data.D)}}, <BR>dnM:function(){with(this){calendarChange(data.Y,data.M,data.D)}}, <BR>upY:function(){with(this){calendarChange(data.Y-1,data.M-1,data.D)}}, <BR>upM:function(){with(this){calendarChange(data.Y,data.M-2,data.D)}}, <BR>day:function(o){with(this){data.D=o;calendarChange(data.Y,data.M-1,data.D)}}, <BR>data:{Y:null,M:null,D:null,W:null,H:null,U:null,YMD:null,YMD_C:"hot",ARR:null,TABLE:null,MN:null,WN:null,SELECT:null,TADAY:new Date(),TADAY_C:"taday",ROWLEN:7,VALUE:null}, <BR>creatTable:function(){with(this){ <BR>var table="<table height=100% width=100%><tr>" <BR>for(var i=0;i<data.ROWLEN;i++){var t=data.WN[i]||" ";table+="<th>"+t+"";} <BR>for(var i in data.ARR){var showText=data.ARR[i]||" ",br=i%data.ROWLEN,title,css=""; <BR>if(!br){table+="<tr>"}; <BR>data.ARR[i]?title=data.Y+"-"+data.M+"-"+showText:title=""; <BR>if(String(data.D)==String(data.ARR[i])){css+=" "+data.YMD_C;} <BR>if(data.YMD.getFullYear()==data.TADAY.getFullYear()&&data.YMD.getMonth()==data.TADAY.getMonth()&&String(data.TADAY.getDate())==String(data.ARR[i])){css=" "+data.TADAY_C} <BR>table+="<td title='"+title+"' class="+css+">"+showText+""; <BR>}table+="" <BR>data.TABLE=table;return table; <BR>}}, <BR>calendarStarArr:function(userY,userM,userD){with(this){ <BR>var Arr=[]; <BR>var now = new Date(userY,userM,userD); <BR>var LastDay = now.getLastDay(); <BR>var FirstDayofWeek = now.FirstDayofWeek(); <BR>data.YMD=now;data.Y=now.getFullYear(); <BR>data.M=now.getMonth()+1;data.D=now.getDate();data.W=now.getDay(); <BR>while(Arr.length!=FirstDayofWeek){Arr.push(false)} <BR>for(var i=0;i<LastDay;i++){Arr.push(i+1)} <BR>while(Arr.length%data.ROWLEN!=0){Arr.push(false)} <BR>data.ARR=Arr;return Arr; <BR>}}, <BR>calendarChange:function(userY,userM,userD){with(this){ <BR>calendarStarArr(userY,userM,userD);creatTable() <BR>}}, <BR>calendarStar:function(userY,userM,userD){with(this){ <BR>data.MN = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二"]; <BR>data.WN = ["日","一","二","三","四","五","六"]; <BR>calendarChange(userY,userM,userD); <BR>}}, <BR>init:function(){with(this){ <BR>Date.prototype.getLastDay=function(){return(new Date(this.getFullYear(),this.getMonth()+1,0).getDate())} <BR>Date.prototype.FirstDayofWeek=function(){return(new Date(this.getFullYear(),this.getMonth(),1).getDay())} <BR>calendarStar(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()) <BR>}} <BR>} <BR></script>



















<script> <BR>calendar.init() <BR>function calendarChange(){ <BR>var calendar_body=document.getElementById("calendar_body") <BR>calendar_body.innerHTML=calendar.T()//显示表格 <BR>var calendar_str=document.getElementById("calendar_str") <BR>calendar_str.innerHTML=calendar.STR()//显示日期字符串 <BR>calendarControl()//调用日历控制 <BR>} <BR>calendarChange()//日历更新 <BR>function calendarControl(){ <BR>var calendar_str=document.getElementById("calendar_str") <BR>calendar_str.onclick=function(){ calendar.init();calendarChange()}//返回今天功能实现 <BR>var calendar_dnY=document.getElementById("calendar_dnY") <BR>calendar_dnY.onclick=function(){ calendar.dnY();calendarChange()}//下一年 功能实现 <BR>var calendar_dnM=document.getElementById("calendar_dnM") <BR>calendar_dnM.onclick=function(){ calendar.dnM();calendarChange()}//下一月 功能实现 <BR>var calendar_upY=document.getElementById("calendar_upY") <BR>calendar_upY.onclick=function(){ calendar.upY();calendarChange()}//上一年 功能实现 <BR>var calendar_upM=document.getElementById("calendar_upM") <BR>calendar_upM.onclick=function(){ calendar.upM();calendarChange()}//上一月 功能实现 <BR>var calendar_day=document.getElementById("calendar_body").getElementsByTagName("td"); <BR>for(var i in calendar_day){calendar_day[i].onclick=function(){var N=Number(this.innerText);if(N){calendar.day(N);calendarChange()}}}//当天日期 功能实现 <BR>} <BR></script>


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn der Win11-Dual-Screen-Kalender auf dem zweiten Monitor nicht vorhanden ist? Was soll ich tun, wenn der Win11-Dual-Screen-Kalender auf dem zweiten Monitor nicht vorhanden ist? Jun 12, 2024 pm 05:47 PM

Ein wichtiges Tool zur Organisation Ihres Arbeits- und Arbeitsalltags in Windows 11 ist die Anzeige von Uhrzeit und Datum in der Taskleiste. Diese Funktion befindet sich normalerweise in der unteren rechten Ecke des Bildschirms und ermöglicht Ihnen den sofortigen Zugriff auf Uhrzeit und Datum. Durch Klicken auf diesen Bereich können Sie Ihren Kalender aufrufen und so die Überprüfung bevorstehender Termine und Termine erleichtern, ohne eine separate App öffnen zu müssen. Wenn Sie jedoch mehrere Monitore verwenden, können Probleme mit dieser Funktion auftreten. Während die Uhrzeit und das Datum auf allen angeschlossenen Monitoren in der Taskleiste angezeigt werden, ist die Möglichkeit, auf einem zweiten Monitor auf Datum und Uhrzeit zu klicken, um den Kalender anzuzeigen, nicht verfügbar. Derzeit funktioniert diese Funktion nur auf der Hauptanzeige – im Gegensatz zu Windows 10, wo auf eine beliebige Schaltfläche geklickt wird

Der Win10-Kalender zeigt Wochennummern an Der Win10-Kalender zeigt Wochennummern an Jan 04, 2024 am 08:41 AM

Viele Benutzer möchten das Win10-Kalendertool verwenden, um die aktuelle Anzahl der Tage zu überprüfen, aber der Kalender zeigt diese Funktion nicht automatisch an. Tatsächlich müssen wir nur einfache Einstellungen vornehmen, um die kumulierte Anzahl der Wochen in diesem Jahr anzuzeigen Wochen Tutorial zur digitalen Einstellung: 1. Geben Sie in der Suche in der unteren linken Ecke des Desktops Kalender ein und öffnen Sie die Anwendung. 2. Klicken Sie in der geöffneten Kalenderanwendung auf das „Zahnrad“-Symbol in der unteren linken Ecke. Die Einstellungen werden rechts angezeigt. Wir klicken auf „Kalendereinstellungen“. 3. Fahren Sie in den geöffneten Kalendereinstellungen fort und suchen Sie nach „Wochennummer“. und dann die Woche ändern. Passen Sie einfach die Zahlenoption auf „der erste Tag des Jahres“ an. 4. Nachdem Sie die obigen Einstellungen vorgenommen haben, klicken Sie auf „Woche“, um die Wochenstatistiken für dieses Jahr anzuzeigen.

Outlook-Kalender wird nicht synchronisiert; Outlook-Kalender wird nicht synchronisiert; Mar 26, 2024 am 09:36 AM

Wenn Ihr Outlook-Kalender nicht mit Google Kalender, Teams, iPhone, Android, Zoom, Office-Konto usw. synchronisiert werden kann, führen Sie bitte die folgenden Schritte aus, um das Problem zu beheben. Die Kalender-App kann mit anderen Kalenderdiensten wie Google Kalender, iPhone, Android, Microsoft Office 365 usw. verbunden werden. Dies ist sehr nützlich, da eine automatische Synchronisierung möglich ist. Was aber, wenn die Synchronisierung von OutlookCalendar mit Kalendern von Drittanbietern fehlschlägt? Mögliche Gründe hierfür könnten die Auswahl des falschen Kalenders für die Synchronisierung, ein nicht sichtbarer Kalender, Störungen in der Hintergrundanwendung, eine veraltete Outlook-Anwendung oder Kalenderanwendung usw. sein. Vorläufige Lösung für den Fehler, dass der Outlook-Kalender nicht synchronisiert wird

Was soll ich tun, wenn in Win10 keine Popup-Erinnerungen für Kalenderereignisse vorhanden sind? Wie kann ich die Wiederherstellung durchführen, wenn in Win10 keine Erinnerungen an Kalenderereignisse vorhanden sind? Was soll ich tun, wenn in Win10 keine Popup-Erinnerungen für Kalenderereignisse vorhanden sind? Wie kann ich die Wiederherstellung durchführen, wenn in Win10 keine Erinnerungen an Kalenderereignisse vorhanden sind? Jun 09, 2024 pm 02:52 PM

Der Kalender kann Benutzern dabei helfen, Ihren Zeitplan aufzuzeichnen und sogar Erinnerungen festzulegen. Viele Benutzer fragen sich jedoch, was zu tun ist, wenn in Windows 10 keine Erinnerungen an Kalenderereignisse angezeigt werden. Benutzer können zunächst den Windows-Update-Status überprüfen oder den Windows App Store-Cache leeren, um den Vorgang auszuführen. Lassen Sie diese Website den Benutzern die Analyse des Problems, dass die Kalenderereigniserinnerung in Win10 nicht angezeigt wird, sorgfältig vorstellen. Um Kalenderereignisse hinzuzufügen, klicken Sie im Systemmenü auf das Programm „Kalender“. Klicken Sie mit der linken Maustaste auf ein Datum im Kalender. Geben Sie im Bearbeitungsfenster den Namen des Ereignisses und die Erinnerungszeit ein und klicken Sie auf die Schaltfläche „Speichern“, um das Ereignis hinzuzufügen. Lösung des Problems, dass die Erinnerung an Win10-Kalenderereignisse nicht angezeigt wird

Keine Zeit verloren Einkaufsbüro: Neue Kalender- und Geburtstagsserien-Peripheriegeräte! Keine Zeit verloren Einkaufsbüro: Neue Kalender- und Geburtstagsserien-Peripheriegeräte! Feb 29, 2024 pm 12:00 PM

Es wurde bestätigt, dass das Lost Time-Einkaufsbüro am 28. Februar um 11 Uhr aktualisiert wird. Spieler können nach Taobao gehen, um nach dem Lost Time-Einkaufsbüro zu suchen und die Store-Kategorie zum Kauf auszuwählen. Dieses Mal präsentieren wir Ihnen die MBCC-Geburtstagsfeierserie und Peripheriegeräte für den Tischkalender 2024 kommen zusammen. Schauen Sie sich dieses Mal die Produktdetails an. Keine Zeit verloren Einkaufsbüro: Neue Kalender- und Geburtstagsserien-Peripheriegeräte! Es gibt etwas Neues im Lost Procurement Office! – Vorverkaufszeit: 28. Februar 2024, 11:00 Uhr – 13. März 2024, 23:59 Uhr. Kaufadresse: Taobao, suchen Sie nach [Unbestimmtes verlorenes Einkaufsbüro] und wählen Sie die Kategorie [Geschäft] aus, um das Geschäft zum Kauf von Peripheriegeräten zu betreten Einführung: Die neuen Peripheriegeräte, die dieses Mal veröffentlicht werden, sind MBCC-Geburtstagsfeierserien und 2024-Tischkalender-Peripheriegeräte. Klicken Sie bitte auf das lange Bild, um weitere Informationen zu erhalten. Das Einkaufsbüro stellt neue Peripheriegeräte vor – MBCC-Studenten

Der Kalender in der unteren rechten Ecke von Win10 kann nicht geöffnet werden Der Kalender in der unteren rechten Ecke von Win10 kann nicht geöffnet werden Dec 26, 2023 pm 05:07 PM

Einige Freunde, die das Win0-System verwenden, sind auf die Situation gestoßen, dass der Win10-Kalender nicht geöffnet werden kann. Dies ist nur ein normaler Computerfehler. Er kann in den Datenschutzeinstellungen des Win10-Systems behoben werden. Unten werfen wir einen Blick darauf. Lösung für das Problem, dass der Kalender in der unteren rechten Ecke von Win10 nicht geöffnet werden kann 1. Klicken Sie im Win10-System auf Start → Klicken Sie oben auf die Programmlistenschaltfläche → Suchen Sie nach Pinyin (Chinesisch) R → Kalender 2. Bei der ersten Verwendung , neue Termine dürfen nicht geöffnet werden (Maus Wenn Sie sich nach oben beugen, wird kein Dunkelblau ausgewählt), Sie können es auf Privatsphäre einstellen. Klicken Sie auf das Symbol mit den drei Balken in der oberen linken Ecke des Desktops → unten wird ein Einstellungsmenü angezeigt. 3. Klicken Sie in der Popup-Oberfläche auf „Datenschutz“. 4. Wenn Sie zuvor Einstellungen verwendet haben, können Sie auf klicken links

Wie kann das Problem gelöst werden, dass die Zeit in Win11 immer ungenau ist? Das Win11-Tutorial zur Zeitanpassung löst schnell das Problem der ungenauen Zeit Wie kann das Problem gelöst werden, dass die Zeit in Win11 immer ungenau ist? Das Win11-Tutorial zur Zeitanpassung löst schnell das Problem der ungenauen Zeit Apr 19, 2024 am 09:31 AM

Wenn Ihr Windows 11-Computer die falsche Uhrzeit anzeigt, kann das viele Probleme verursachen und Sie sogar daran hindern, eine Verbindung zum Internet herzustellen. Tatsächlich verweigern einige Anwendungen das Öffnen oder Ausführen, wenn das System ein falsches Datum und eine falsche Uhrzeit anzeigt. Wie soll dieses Problem also gelöst werden? Werfen wir einen Blick nach unten! Methode 1: 1. Wir klicken zuerst mit der rechten Maustaste auf die leere Stelle der Taskleiste unten und wählen „Taskleisteneinstellungen“ aus. 2. Suchen Sie rechts in den Taskleisteneinstellungen nach „taskbarcorneroverflow3“, suchen Sie dann nach „Uhr“ oder „Uhr“ darüber und wählen Sie „Einschalten“. Methode 2: 1. Drücken Sie die Tastenkombination Win+R, um Ausführen aufzurufen, geben Sie regedit ein und drücken Sie zur Bestätigung die Eingabetaste. 2. Öffnen Sie den Registrierungseditor und suchen Sie darin HKEY

So verhindern Sie, dass Outlook automatisch Ereignisse zu meinem Kalender hinzufügt So verhindern Sie, dass Outlook automatisch Ereignisse zu meinem Kalender hinzufügt Feb 26, 2024 am 09:49 AM

Als E-Mail-Manager-Anwendung ermöglicht uns Microsoft Outlook die Planung von Ereignissen und Terminen. Es ermöglicht uns, organisiert zu bleiben, indem es Tools zum Erstellen, Verwalten und Verfolgen dieser Aktivitäten (auch Ereignisse genannt) in der Outlook-Anwendung bereitstellt. Allerdings werden manchmal unerwünschte Ereignisse zum Kalender in Outlook hinzugefügt, was zu Verwirrung bei den Benutzern führt und den Kalender mit Spam überschwemmt. In diesem Artikel werden wir verschiedene Szenarien und Schritte untersuchen, die uns dabei helfen können, zu verhindern, dass Outlook automatisch Ereignisse zu meinem Kalender hinzufügt. Outlook-Ereignisse – ein kurzer Überblick Outlook-Ereignisse dienen mehreren Zwecken und verfügen über viele nützliche Funktionen wie folgt: Kalenderintegration: In Outlook

See all articles