javascript programs questions




जावास्क्रिप्ट में दिनांक/समय घटाना कैसे करें? (5)

आप 1 जनवरी, 1 9 70 से Date को मिलीसेकंड की संख्या में बदलने के लिए getTime() विधि का उपयोग कर सकते हैं। फिर आप तिथियों के साथ किसी भी अंकगणितीय परिचालन को आसान बना सकते हैं। बेशक आप संख्या को वापस setTime() साथ Date परिवर्तित कर सकते हैं। here एक उदाहरण देखें।

https://code.i-harness.com

इस प्रश्न का उत्तर यहां दिया गया है:

मेरे पास दिनांक / समय वाली ग्रिड में एक फ़ील्ड है और मुझे उस और वर्तमान दिनांक / समय के बीच अंतर जानने की आवश्यकता है। ऐसा करने का सबसे अच्छा तरीका क्या हो सकता है?


आप बस दो तारीख वस्तुओं को प्रतिस्थापित कर सकते हैं।

var d1 = new Date(); //"now"
var d2 = new Date("2011/02/01")  // some date
var diff = Math.abs(d1-d2);  // difference in milliseconds

जब तक आप एक ही ब्राउज़र क्लाइंट पर तिथियों को घटाना नहीं चाहते हैं और दिन के प्रकाश बचत समय परिवर्तन जैसे किनारे के मामलों की परवाह नहीं करते हैं, तो आप शायद moment.js का उपयोग करके बेहतर हो सकते हैं जो शक्तिशाली स्थानीयकृत एपीआई प्रदान करता है। उदाहरण के लिए, मेरे पास मेरे utils.js में यही है:

subtractDates: function(date1, date2) {
    return moment.subtract(date1, date2).milliseconds();
},
millisecondsSince: function(dateSince) {
    return moment().subtract(dateSince).milliseconds();
},

यदि आप दीवार घड़ी के समय में स्थानीय टाइमज़ोन और दिन-प्रकाश बचत जागरूकता के साथ अंतर प्राप्त करना चाहते हैं।


Date.prototype.diffDays = function (date: Date): number {

    var utcThis = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
    var utcOther = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());

    return (utcThis - utcOther) / 86400000;
};

परीक्षा


it('diffDays - Czech DST', function () {
    // expect this to parse as local time
    // with Czech calendar DST change happened 2012-03-25 02:00
    var pre = new Date('2012/03/24 03:04:05');
    var post = new Date('2012/03/27 03:04:05');

    // regardless DST, you still wish to see 3 days
    expect(pre.diffDays(post)).toEqual(-3);
});

डिफ मिनट या सेकंड एक ही फैशन में है।


यह आपको मिलीसेकंड में दो तिथियों के बीच अंतर देगा

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

आपके उदाहरण में, यह होगा

var diff = Math.abs(new Date() - compareDate);

आपको यह सुनिश्चित करने की ज़रूरत है कि compareDate Date एक वैध Date वस्तु है।

ऐसा कुछ शायद आपके लिए काम करेगा

var diff = Math.abs(new Date() - new Date(dateStr.replace(/-/g,'/')));

यानी "2011-02-07 15:13:06" को new Date('2011/02/07 15:13:06') , जो एक प्रारूप है जो new Date('2011/02/07 15:13:06') समझ सकता है।







javascript