SORU
29 Mart 2010, PAZARTESİ


JavaScript ile iki tarih arasındaki Ay farkı

Nasıl iki Tarih farkı anlamaya çalışmak istiyorum() tek fark ay sayısını dönüş yaparken JavaScript nesneleri?

Herhangi bir yardım iyi olurdu :)

CEVAP
29 Mart 2010, PAZARTESİ


Tanımı "fark ayların sayısı" yorumu çok tabidir. :-)

Yıl, ay ve JavaScript tarihten itibaren Ayın gün nesne. Aradığınız ne bağlı olarak, bu kaç ay içinde iki nokta arasında olduğunu anlamak için kullanabilirsiniz.

-Manşet kapalı mesela, bu kadar insan bulurtam bir ayiki tarih arasındaki yalan, kısmi aylık (her tarih ay hariç örneğin) saymazsak:

function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth()   1;
    months  = d2.getMonth();
    return months <= 0 ? 0 : months;
}

monthDiff(
    new Date(2008, 10, 4), // November 4th, 2008
    new Date(2010, 2, 12)  // March 12th, 2010
);
// Result: 15: December 2008, all of 2009, and Jan & Feb 2010

monthDiff(
    new Date(2010, 0, 1),  // January 1st, 2010
    new Date(2010, 2, 12)  // March 12th, 2010
);
// Result: 1: February 2010 is the only full month between them

monthDiff(
    new Date(2010, 1, 1),  // February 1st, 2010
    new Date(2010, 2, 12)  // March 12th, 2010
);
// Result: 0: There are no *full* months between them

(JavaScript ay değerler 0 = ocak ile başlamak unutmayın.)

Dahil olmak üzere kesirli aylarda üzerinde çok daha karmaşık, çünkü üç gün içinde tipik bir Şubat ayı daha büyük bir kısmını bu ay (~10.714%) daha üç gün Ağustos (~9.677%), ve tabii ki hatta Şubat bir hareketli hedef olmasına bağlı olarak bir artık yıl.

Ayrıca muhtemelen bu tür şeyler daha kolay hale date and time libraries bazı JavaScript için kullanılabilir vardır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • psidot

    psidot

    2 Kasım 2006
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009