javascript - दो तिथियों के बीच दिनों की संख्या की गणना कैसे करें?




html date (5)

डेलाइट सेविंग मतभेदों की अनुमति देने के लिए समायोजित। इसे इस्तेमाल करे:

  function daysBetween(date1, date2) {

 // adjust diff for for daylight savings
 var hoursToAdjust = Math.abs(date1.getTimezoneOffset() /60) - Math.abs(date2.getTimezoneOffset() /60);
 // apply the tz offset
 date2.addHours(hoursToAdjust); 

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)

    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)

}

// you'll want this addHours function too 

Date.prototype.addHours= function(h){
    this.setHours(this.getHours()+h);
    return this;
}
  1. मैं 'से' और 'से' तारीख के बीच दिनों की संख्या की गणना कर रहा हूं। उदाहरण के लिए, यदि तिथि से 13/04/2010 है और तिथि 15/04/2010 है तो परिणाम होना चाहिए

  2. जावास्क्रिप्ट का उपयोग करके मैं परिणाम कैसे प्राप्त करूं?


मेरा कार्यान्वयन यहां है:

function daysBetween(one, another) {
  return Math.round(Math.abs((+one) - (+another))/8.64e7);
}

+<date> पूर्णांक प्रतिनिधित्व के लिए प्रकार जबरन करता है और उसी दिन <date>.getTime() और 8.64e7 एक ही प्रभाव में मिलीसेकंड की संख्या है।


मैं इसका उपयोग करता हूं। यदि आप तिथियों को घटाते हैं, तो यह डेलाइट सेविंग टाइम सीमा (जैसे अप्रैल 1 से 30 अप्रैल या 1 अक्टूबर से 31 अक्टूबर तक) में काम नहीं करेगा। यह सुनिश्चित करने के लिए सभी घंटे बूँदें कि आपको एक दिन मिल जाए और यूटीसी का उपयोग कर किसी भी डीएसटी समस्या को समाप्त कर दें।

var nDays = (    Date.UTC(EndDate.getFullYear(), EndDate.getMonth(), EndDate.getDate()) -
                 Date.UTC(StartDate.getFullYear(), StartDate.getMonth(), StartDate.getDate())) / 86400000;

मैंने इस समाधान को एक और पोस्ट के लिए लिखा है, जिसने पूछा, दो तिथियों के बीच अंतर की गणना कैसे करें, इसलिए मैंने जो कुछ तैयार किया है, उसे साझा करता हूं:

// Here are the two dates to compare
var date1 = '2011-12-24';
var date2 = '2012-01-01';

// First we split the values to arrays date1[0] is the year, [1] the month and [2] the day
date1 = date1.split('-');
date2 = date2.split('-');

// Now we convert the array to a Date object, which has several helpful methods
date1 = new Date(date1[0], date1[1], date1[2]);
date2 = new Date(date2[0], date2[1], date2[2]);

// We use the getTime() method and get the unixtime (in milliseconds, but we want seconds, therefore we divide it through 1000)
date1_unixtime = parseInt(date1.getTime() / 1000);
date2_unixtime = parseInt(date2.getTime() / 1000);

// This is the calculated difference in seconds
var timeDifference = date2_unixtime - date1_unixtime;

// in Hours
var timeDifferenceInHours = timeDifference / 60 / 60;

// and finaly, in days :)
var timeDifferenceInDays = timeDifferenceInHours  / 24;

alert(timeDifferenceInDays);

आप कोड में कुछ कदम छोड़ सकते हैं, मैंने इसे समझना आसान बनाने के लिए लिखा है।

आपको यहां एक चल रहा उदाहरण मिलेगा: http://jsfiddle.net/matKX/


var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date(2008,01,12);
var secondDate = new Date(2008,01,22);

var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));




date