javascript - जावास्क्रिप्ट में दो तिथियों के बीच अंतर कैसे प्राप्त करूं?




date (11)

मैं एक एप्लीकेशन बना रहा हूं जो आपको समय सीमा के साथ घटनाओं को परिभाषित करने देता है। जब उपयोगकर्ता प्रारंभ तिथि चुनता है या बदलता है तो मैं स्वचालित रूप से समाप्ति तिथि भरना चाहता हूं। हालांकि, मैं समझ नहीं पा रहा हूं कि, दो बार के बीच अंतर कैसे प्राप्त करें, और फिर उस अंतर का उपयोग करके एक नई समाप्ति तिथि कैसे बनाएं।


आपकी जरूरतों के आधार पर, यह फ़ंक्शन 2 दिनों के बीच के अंतर की गणना करेगा, और परिणाम को दशमलव दशमलव में वापस कर देगा।

// This one returns a signed decimal. The sign indicates past or future.

this.getDateDiff = function(date1, date2) {
    return (date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24);
}

// This one always returns a positive decimal. (Suggested by Koen below)

this.getDateDiff = function(date1, date2) {
    return Math.abs((date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24));
}

जावास्क्रिप्ट पूरी तरह से बॉक्स के बाहर दिनांक अंतर का समर्थन करता है

var msMinute = 60*1000, 
    msDay = 60*60*24*1000,
    a = new Date(2012, 2, 12, 23, 59, 59),
    b = new Date("2013 march 12");


console.log(Math.floor((b - a) / msDay) + ' full days between');
console.log(Math.floor(((b - a) % msDay) / msMinute) + ' full minutes between');

अब कुछ नुकसान। इसे इस्तेमाल करे:

console.log(a - 10);
console.log(a + 10);

इसलिए यदि आपको कोई संख्या और तिथि जोड़ने का जोखिम है, तो तिथि को सीधे number परिवर्तित करें।

console.log(a.getTime() - 10);
console.log(a.getTime() + 10);

मेरा मुट्ठी उदाहरण डेट ऑब्जेक्ट की शक्ति का प्रदर्शन करता है लेकिन यह वास्तव में एक समय बम प्रतीत होता है


यदि moment.js का उपयोग करना है, तो एक आसान समाधान है, जो आपको कोड की एक पंक्ति में दिनों में अंतर देगा।

moment(endDate).diff(moment(beginDate), 'days');

अतिरिक्त विवरण क्षण.जेएस पेज में मिल सकते हैं

चीयर्स, मिगुएल


यदि आप दिनांक ऑब्जेक्ट्स का उपयोग करते हैं और फिर दोनों तिथियों के लिए getTime() फ़ंक्शन का उपयोग करते हैं तो यह आपको 1 जनवरी 1 9 70 से एक संख्या मूल्य में अपना संबंधित समय देगा। फिर आप इन संख्याओं के बीच अंतर प्राप्त कर सकते हैं।

यदि इससे आपकी मदद नहीं मिलती है, तो पूर्ण दस्तावेज देखें: http://www.w3schools.com/jsref/jsref_obj_date.asp


यह कोड अध्ययन वर्ष की अवधि भरता है जब आप प्रारंभ तिथि और समाप्ति तिथि (योग्यता योग्यता योग्यता) इनपुट करते हैं और जांच करते हैं कि क्या एक वर्ष से भी कम अवधि की अवधि है, यदि हां एक संदेश को ध्यान में रखता है तो तीन इनपुट तत्व पहले txtFromQualifDate और दूसरा txtQualifDate और तीसरा txtStudyYears

यह अंश के साथ वर्षों की संख्या का परिणाम दिखाएगा

function getStudyYears()
    {
        if(document.getElementById('txtFromQualifDate').value != '' && document.getElementById('txtQualifDate').value != '')
        {
            var d1 = document.getElementById('txtFromQualifDate').value;

            var d2 = document.getElementById('txtQualifDate').value;

            var one_day=1000*60*60*24;

            var x = d1.split("/");
            var y = d2.split("/");

            var date1=new Date(x[2],(x[1]-1),x[0]);

            var date2=new Date(y[2],(y[1]-1),y[0])

            var dDays = (date2.getTime()-date1.getTime())/one_day;

            if(dDays < 365)
            {
                alert("the date between start study and graduate must not be less than a year !");

                document.getElementById('txtQualifDate').value = "";
                document.getElementById('txtStudyYears').value = "";

                return ;
            }

            var dMonths = Math.ceil(dDays / 30);

            var dYears = Math.floor(dMonths /12) + "." + dMonths % 12;

            document.getElementById('txtStudyYears').value = dYears;
        }
    }

यह है कि मैंने अपनी प्रणाली पर क्या किया।

var startTime=("08:00:00").split(":");
var endTime=("16:00:00").split(":");
var HoursInMinutes=((parseInt(endTime[0])*60)+parseInt(endTime[1]))-((parseInt(startTime[0])*60)+parseInt(startTime[1]));
console.log(HoursInMinutes/60);

जेएसफ़ील्ड डेमो देखें

    var date1 = new Date();    
    var date2 = new Date("2015/07/30 21:59:00");
    showDiff();

function showDiff(date1, date2){

    var diff = (date2 - date1)/1000;
    var diff = Math.abs(Math.floor(diff));

    var days = Math.floor(diff/(24*60*60));
    var leftSec = diff - days * 24*60*60;

    var hrs = Math.floor(leftSec/(60*60));
    var leftSec = leftSec - hrs * 60*60;

    var min = Math.floor(leftSec/(60));
    var leftSec = leftSec - min * 60;

    document.getElementById("showTime").innerHTML = "You have " + days + " days " + hrs + " hours " + min + " minutes and " + leftSec + " seconds before death.";

setTimeout(showDiff,1000);
}

आपके एचटीएमएल कोड के लिए:

<div id="showTime"></div>

कोड के नीचे आज से वायदा तिथि तक शेष दिन लौटाएंगे।

निर्भरता: jQuery और क्षण जेएस।

var getDaysLeft = function (date) {
  var today = new Date();
  var daysLeftInMilliSec = Math.abs(new Date(moment(today).format('YYYY-MM-DD')) - new Date(date));
  var daysLeft = daysLeftInMilliSec / (1000 * 60 * 60 * 24);   
  return daysLeft;
};

getDaysLeft('YYYY-MM-DD');

<html>
<head>
<script>
function dayDiff()
{
     var start = document.getElementById("datepicker").value;
     var end= document.getElementById("date_picker").value;
     var oneDay = 24*60*60*1000; 
     var firstDate = new Date(start);
     var secondDate = new Date(end);    
     var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
    document.getElementById("leave").value =diffDays ;
 }
</script>
</head>
<body>
<input type="text" name="datepicker"value=""/>
<input type="text" name="date_picker" onclick="function dayDiff()" value=""/>
<input type="text" name="leave" value=""/>
</body>
</html>

function checkdate() {
    var indate = new Date()
    indate.setDate(dat)
    indate.setMonth(mon - 1)
    indate.setFullYear(year)

    var one_day = 1000 * 60 * 60 * 24
    var diff = Math.ceil((indate.getTime() - now.getTime()) / (one_day))
    var str = diff + " days are remaining.."
    document.getElementById('print').innerHTML = str.fontcolor('blue')
}

var getDaysLeft = function (date1, date2) {
   var daysDiffInMilliSec = Math.abs(new Date(date1) - new Date(date2));
   var daysLeft = daysDiffInMilliSec / (1000 * 60 * 60 * 24);   
   return daysLeft;
};
var date1='2018-05-18';
var date2='2018-05-25';
var dateDiff = getDaysLeft(date1, date2);
console.log(dateDiff);







date