Heim > Web-Frontend > js-Tutorial > Wie berechnet man ISO-Wochenzahlen in JavaScript, genau wie PHPs `date('W')`?

Wie berechnet man ISO-Wochenzahlen in JavaScript, genau wie PHPs `date('W')`?

DDD
Freigeben: 2024-12-12 22:48:16
Original
696 Leute haben es durchsucht

How to Calculate ISO Week Numbers in JavaScript, Just Like PHP's `date('W')`?

Bestimmen der Wochennummer in JavaScript Wie PHPs date('W')

PHPs date('W')-Funktion berechnet die Wochennummer von Das Jahr basiert auf ISO-8601-Standards. Die ISO-8601-Wochennummer beginnt am Montag und läuft bis Sonntag. Dieser Artikel zeigt, wie man eine ähnliche Funktionalität in JavaScript erreicht.

Lösung

Merlyns Website bietet eine umfassende Anleitung zum Arbeiten mit Wochen in JavaScript:

  • [Arbeiten mit Wochen](https://www.merlyn.org/2005/11/04/working-with-weeks/)

Basierend auf diesem Leitfaden gibt das folgende Codefragment die ISO-8601-Woche zurück Nummer eines bestimmten Datums:

/* For a given date, get the ISO week number
 *
 * Based on information at:
 *
 *    https://www.merlyn.org/weekcalc.htm#WNR
 *
 * Algorithm is to find nearest thursday, it's year
 * is the year of the week number. Then get weeks
 * between that date and the first day of that year.
 *
 * Note that dates in one year can be weeks of previous
 * or next year, overlap is up to 3 days.
 *
 * e.g. 2014/12/29 is Monday in week  1 of 2015
 *      2012/1/1   is Sunday in week 52 of 2011
 */
function getWeekNumber(d) {
    // Copy date so don't modify original
    d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
    // Set to nearest Thursday: current date + 4 - current day number
    // Make Sunday's day number 7
    d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));
    // Get first day of year
    var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));
    // Calculate full weeks to nearest Thursday
    var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);
    // Return array of year and week number
    return [d.getUTCFullYear(), weekNo];
}

var result = getWeekNumber(new Date());
console.log('It\'s currently week ' + result[1] + ' of ' + result[0]);
Nach dem Login kopieren

Dieser Code basiert auf UTC-Methoden, um Probleme während der Sommerzeit und bei bestimmten Jahresanfangsszenarien zu vermeiden. Die Ausgabe zeigt sowohl das aktuelle Jahr als auch die Wochennummer an, ähnlich der PHP-Funktion date('W').

Das obige ist der detaillierte Inhalt vonWie berechnet man ISO-Wochenzahlen in JavaScript, genau wie PHPs `date('W')`?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage