SORU
24 Mayıs 2011, Salı


JavaScript yılın hafta PHP gibi olsun

Nasıl PHP date('W') gibi yıl geçerli weeknumber alır mıyım?

Bu olmalıISO-8601yıl Pazartesi günü başlayan hafta hafta numarası.

CEVAP
24 Mayıs 2011, Salı


Ne istediğini almak mümkün:http://www.merlyn.demon.co.uk/js-date6.htm#YWD olmalıdır

Aynı sitede daha iyi bir link:Working with weekshttp://www.merlyn.demon.co.uk/js-date7.htm

Edit

Burada bazı kod verilen linklere göre ve Dommer tarafından yayınlanan eariler. Hafifçe http://www.merlyn.demon.co.uk/js-date6.htm#YWD sonuçlara karşı test edilmiştir. Lütfen test iyice nitelikte.

/* For a given date, get the ISO week number
 *
 * Based on information at:
 *
 *    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( d);
    d.setHours(0,0,0);
    // Set to nearest Thursday: current date   4 - current day number
    // Make Sunday's day number 7
    d.setDate(d.getDate()   4 - (d.getDay()||7));
    // Get first day of year
    var yearStart = new Date(d.getFullYear(),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.getFullYear(), weekNo];
}

Saat tarih nesnesi geç bir zaman geçirilir diye sıfırlanmış olması gerektiğini unutmayın.

Simge durumuna küçültülmüş, prototip sürümü (döner hafta sayısı):

Date.prototype.getWeekNumber = function(){
    var d = new Date( this);
    d.setHours(0,0,0);
    d.setDate(d.getDate() 4-(d.getDay()||7));
    return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7) 1)/7);
};

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • OVERWERK

    OVERWERK

    6 Temmuz 2010
  • Vsauce

    Vsauce

    30 Temmuz 2007