Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengira Nombor Minggu ISO dalam JavaScript, Sama Seperti `tarikh('W')` PHP?

Bagaimana untuk Mengira Nombor Minggu ISO dalam JavaScript, Sama Seperti `tarikh('W')` PHP?

DDD
Lepaskan: 2024-12-12 22:48:16
asal
682 orang telah melayarinya

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

Menentukan Nombor Minggu dalam JavaScript Seperti tarikh PHP('W')

Fungsi tarikh PHP('W') mengira nombor minggu bagi tahun berdasarkan piawaian ISO-8601. Nombor minggu ISO-8601 bermula pada hari Isnin dan berjalan hingga Ahad. Artikel ini menunjukkan cara untuk mencapai kefungsian serupa dalam JavaScript.

Penyelesaian

Tapak web Merlyn menyediakan panduan komprehensif untuk bekerja dengan minggu dalam JavaScript:

  • [Bekerjasama dengan minggu](https://www.merlyn.org/2005/11/04/working-with-weeks/)

Berdasarkan panduan ini, coretan kod berikut mengembalikan minggu ISO-8601 nombor tarikh tertentu:

/* 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]);
Salin selepas log masuk

Kod ini bergantung pada kaedah UTC untuk mengelakkan isu semasa penjimatan siang dan permulaan tahun tertentu senario. Output memaparkan kedua-dua tahun semasa dan nombor minggu, serupa dengan fungsi tarikh('W') PHP.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Nombor Minggu ISO dalam JavaScript, Sama Seperti `tarikh('W')` PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan