Heim Web-Frontend js-Tutorial js, um einen einfachen Kalendereffekt für den Tag zu schreiben [Implementierungscode]_Javascript-Kenntnisse

js, um einen einfachen Kalendereffekt für den Tag zu schreiben [Implementierungscode]_Javascript-Kenntnisse

May 16, 2016 pm 03:02 PM
js 日历

Ich wollte schon immer einen Kalender mit Javascript schreiben, habe es aber nicht ausprobiert, weil ich überhaupt keine guten Ideen habe. Kürzlich habe ich zufällig ein Beispiel für einen einfachen, in Javascript geschriebenen Kalender im Internet gesehen. Obwohl die Codemenge nicht groß ist, denke ich, dass sie das Implementierungsprinzip von js Calendar sehr gut erklärt. Ich habe es auch selbst ausprobiert und viel gewonnen. Wenn ich die grundlegenden Implementierungsprinzipien beherrsche, kann ich es zuerst hier teilen.

1. Problem mit der Anzahl der Zeilen in der Tabelle

Da Sie eine Datumstabelle anzeigen möchten, müssen Sie zunächst wissen, wie viele Zeilen und Spalten die Tabelle hat. Es wurden insgesamt 7 Spalten für den Sonntag ermittelt ) bis Samstag. Bevor Sie das Zeilennummernproblem lösen, müssen Sie zunächst wissen, welcher Wochentag der erste Tag dieses Monats ist, da der erste Tag eines jeden Monats im Kalender nicht immer am Sonntag beginnt. Der erste Tag kann Freitag oder Samstag sein . Unsicher, daher muss der linke Teil von Nr. 1 durch ein leeres Formular ersetzt werden. Wie viele leere Tabellen sollten also verwendet werden, um sie zu ersetzen? Die Methode getDay() gibt eine Zahl im Array zurück [0-6 steht für Sonntag, 2 steht für Dienstag usw.]. An. . Fällt also der 1. eines Monats auf einen Freitag, dann werden links 5 leere Tische benötigt. Wenn ein Monat dann 31 Tage hat, beträgt die endgültige Anzahl der Tabellenzeilen:

var tr_nums = Math.ceil((5 + 31)/7);

Natürlich hat nicht jeder Monat 31 Tage, daher müssen wir ein Array mit 12 Monaten erstellen, wobei jedes Element die Anzahl der in jedem Monat enthaltenen Tage darstellt. Aber der Februar ist etwas Besonderes. Der Februar hat in Schaltjahren 29 Tage, während der Februar in gewöhnlichen Jahren nur 28 Tage hat. Daher müssen Sie vor dem Erstellen eines Arrays eine Funktion zur Bestimmung von Schaltjahren erstellen:


//如果当前年份能被4整除但是不能被100整除或者能被400整除,即可确定为闰年,返回1,否则返回0
function isLeap(year) {
 return year % 4 == 0 ? (year % 100 != 0 ? 1 : (year % 400 == 0 ? 1 : 0)) : 0;
}
Nach dem Login kopieren
Dann erstellen wir eine Reihe von Monaten:

var days_per_month = new Array(31, 28 + isLeap(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
Nach dem Login kopieren
Dadurch wird sichergestellt, dass die richtige Anzahl von Tagen abgerufen wird, unabhängig davon, ob es sich um ein normales Jahr oder ein Schaltjahr handelt. Der folgende Code wird verwendet, um die relevanten Informationen für den heutigen Tag zu erhalten:

var today = new Date(),       //获取当前日期
  y = today.getFullYear(),     //获取日期中的年份
  m = today.getMonth(),      //获取日期中的月份(需要注意的是:月份是从0开始计算,获取的值比正常月份的值少1)
  d = today.getDate(),       //获取日期中的日(方便在建立日期表格时高亮显示当天)
  firstday = new Date(y, m, 1),  //获取当月的第一天
  dayOfWeek = firstday.getDay(),  //判断第一天是星期几(返回[0-6]中的一个,0代表星期天,1代表星期一,以此类推)
  days_per_month = new Array(31, 28 + isLeap(y), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31), //创建月份数组
Nach dem Login kopieren
So können Sie endlich die Anzahl der Zeilen in der Tabelle ermitteln, die für den aktuellen Monat erforderlich sind:

var str_nums = Math.ceil((dayOfWeek + days_per_month[m]) / 7); //确定日期表格所需的行数
Nach dem Login kopieren

2. Kalenderformular drucken

Die Tabelle selbst ist ein zweidimensionales Array, also lassen Sie den for-Master zwei Schleifen ausführen, und der Code lautet wie folgt:

for (i = 0; i < str_nums; i += 1) {   //第一层for循环创建tr标签
  document.write('<tr>');
  for (k = 0; k < 7; k++) {      //第二层for循环创建td标签
   var idx = 7 * i + k;        //为每个表格创建索引,从0开始
   var date = idx - dayOfWeek + 1;  //将当月的1号与星期进行匹配
   //do something else
  }
  document.write('</tr>');
  }
Nach dem Login kopieren

3. Im Anhang finden Sie den vollständigen js-Kalendercode

<script>
  //判断当前年份是否是闰年(闰年2月份有29天,平年2月份只有28天)
  function isLeap(year) {
  return year % 4 == 0 &#63; (year % 100 != 0 &#63; 1 : (year % 400 == 0 &#63; 1 : 0)) : 0;
  }
  var i, k,
  today = new Date(),                 //获取当前日期
  y = today.getFullYear(),              //获取日期中的年份
  m = today.getMonth(),                //获取日期中的月份(需要注意的是:月份是从0开始计算,获取的值比正常月份的值少1)
  d = today.getDate(),                //获取日期中的日(方便在建立日期表格时高亮显示当天)
  firstday = new Date(y, m, 1),            //获取当月的第一天
  dayOfWeek = firstday.getDay(),           //判断第一天是星期几(返回[0-6]中的一个,0代表星期天,1代表星期一,以此类推)
  days_per_month = new Array(31, 28 + isLeap(y), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),         //创建月份数组
  str_nums = Math.ceil((dayOfWeek + days_per_month[m]) / 7);                        //确定日期表格所需的行数
  document.write("<table cellspacing='0'><tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>"); //打印表格第一行(显示星期)
  for (i = 0; i < str_nums; i += 1) {         //二维数组创建日期表格
  document.write('<tr>');
  for (k = 0; k < 7; k++) {
   var idx = 7 * i + k;                //为每个表格创建索引,从0开始
   var date = idx - dayOfWeek + 1;          //将当月的1号与星期进行匹配
   (date <= 0 || date > days_per_month[m]) &#63; date = ' ': date = idx - dayOfWeek + 1;  //索引小于等于0或者大于月份最大值就用空表格代替
   date == d &#63; document.write('<td class="today">' + date + '</td>') : document.write('<td>' + date + '</td>');  //高亮显示当天
  }
  document.write('</tr>');
  }
  document.write('</table>');
 </script>
Nach dem Login kopieren
Fühlen Sie sich frei, mit dem CSS-Teil zu spielen. Die aktuelle Zeit ist der 2. Mai 2016. Das Rendering ist wie folgt:

Der obige js, der einen einfachen Kalendereffekt für den Tag schreibt [Implementierungscode], ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, er kann Ihnen eine Referenz geben und ich hoffe, dass Sie Script Home unterstützen.

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

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 尊渡假赌尊渡假赌尊渡假赌
Zwei -Punkte -Museum: Alle Exponate und wo man sie finden kann
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

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Dec 17, 2023 pm 06:55 PM

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen in PHP und JS. Mit der rasanten Entwicklung des Internets und der Technologie ist der Aktienhandel für viele Anleger zu einer wichtigen Möglichkeit geworden. Die Aktienanalyse ist ein wichtiger Teil der Anlegerentscheidung, und Kerzendiagramme werden häufig in der technischen Analyse verwendet. Wenn Sie lernen, wie man Kerzendiagramme mit PHP und JS zeichnet, erhalten Anleger intuitivere Informationen, die ihnen helfen, bessere Entscheidungen zu treffen. Ein Candlestick-Chart ist ein technischer Chart, der Aktienkurse in Form von Candlesticks anzeigt. Es zeigt den Aktienkurs

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

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

See all articles