Maison >interface Web >js tutoriel >Comment obtenir le numéro de semaine ISO en JavaScript ?

Comment obtenir le numéro de semaine ISO en JavaScript ?

DDD
DDDoriginal
2024-12-30 16:49:08865parcourir

How to Get the ISO Week Number in JavaScript?

Obtention du numéro de semaine en JavaScript Comme la date('W') de PHP

La fonction date('W') de PHP renvoie le numéro de semaine ISO-8601 actuel du année, à partir de lundi. Nous pouvons obtenir le même résultat en JavaScript en utilisant l'approche suivante :

Utilisation d'une bibliothèque externe

La bibliothèque externe disponible sur le lien suivant peut être utilisée pour calculer la semaine ISO numéro d'une date donnée :

Code JavaScript personnalisé

Alternativement, nous pouvons implémenter une fonction JavaScript personnalisée pour calculer le numéro de la semaine :

/* For a given date, get the ISO week number
 *
 * Based on information at:
 *
 *    THIS PAGE (DOMAIN EVEN) DOESN'T EXIST ANYMORE UNFORTUNATELY
 *    http://www.merlyn.demon.co.uk/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());
document.write('It\'s currently week ' + result[1] + ' of ' + result[0]);

Utilisation

var date = new Date("2018-01-15");
var weekNumber = getWeekNumber(date);
console.log(weekNumber[1]); // Output: 3

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn