2016-04-13 10 views
15

मैं जब दो तिथियों के बीच संख्यात्मक अंतर खोजने की कोशिश कर गलत परिणाम प्राप्त:पल js - दो तिथियों के दिनों की संख्या में अंतर

var startDate = moment($('[name="date-start"]').val(), "DD.MM.YYYY"), // $('[name="date-start"]').val() === "13.04.2016" 
endDate  = moment($('[name="date-end"]' ).val(), "DD.MM.YYYY"); // $('[name="date-end"]').val() === "28.04.2016" 

var diff = startDate.diff(endDate); 

console.log(moment(diff).format('E')); 

13.04.2016 और 28.04.2016 बीच मुझे लगता है कि अंतर नहीं मिलना चाहिए है या दिनों ...

मैं कई संयोजन करने की कोशिश की है:

  • कुछ के साथ अदला-बदली startDate.diff(endDate)endDate.diff(startDate)
  • format('E') साथ मैं खोज अतः

परिणाम आए हैं: हर समय मुझे लगता है कि अंतर 3 या 2 दिन है मिलता है।

मैं क्या गलत कर रहा हूं? अग्रिम में धन्यवाद।

उत्तर

28

क्षण से .js docs: format('E') सप्ताह के दिन खड़ा है।

var a = moment([2007, 0, 29]); 
var b = moment([2007, 0, 28]); 
a.diff(b, 'days') // 1 

यहाँ एक है: इस प्रकार आपके diff सप्ताह है, जो 1 और 7

फिर moment.js डॉक्स से के बीच हो गया है की दिन है जिस पर गणना की जा रही है, यहाँ वे क्या सुझाव दे सकता है आपके मामले में आने JSFiddle:

$('#test').click(function() { 
 
    var startDate = moment("13.04.2016", "DD.MM.YYYY"); 
 
    var endDate = moment("28.04.2016", "DD.MM.YYYY"); 
 

 
    var result = 'Diff: ' + endDate.diff(startDate, 'days'); 
 

 
    $('#result').html(result); 
 
});
#test { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: #ffb; 
 
    padding: 10px; 
 
    border: 2px solid #999; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.js"></script> 
 

 
<div id='test'>Click Me!!!</div> 
 
<div id='result'></div>

+0

ठीक है, लेकिन मैं वें कैसे प्राप्त करूं इन दो तिथियों के बीच अंतर 15 दिनों के हैं? उत्तर –

+0

के लिए धन्यवाद मेरा उत्तर अपडेट किया गया ... जांचें और मुझे बताएं कि यह अभी भी – dubes

+0

समाधान के लिए धन्यवाद नहीं है, लेकिन अब मुझे उस सरणी को प्राप्त करने के लिए बहुत सारे कोड जोड़ना होगा जो मुझे '$ से मिलता है ('इनपुट [name = "date-start"]')। वैल() '' 13.04.2016 "' है। क्या कोई समाधान है जो मेरे वर्तमान दिनांक प्रारूप के साथ काम करेगा? –

0

diff विधि मिलीसेकेंड में अंतर देता है। Instantiating moment(diff) सार्थक नहीं है।

आप एक चर को परिभाषित कर सकते हैं:

var dayInMilliseconds = 1000 * 60 * 60 * 24; 

और उसके बाद तो की तरह उपयोग:

diff/dayInMilliseconds // --> 15 

संपादित

वास्तव में, इस diff विधि में बनाया गया है, dubes ' जवाब बेहतर है

+0

इससे बहुत मदद मिली, मुझे देखने दो कि क्या मैं इस तरह से जाऊंगा –

संबंधित मुद्दे

 संबंधित मुद्दे