JS: जांचें कि क्या दिनांक 1 घंटे से कम है?


95

क्या यह जांचने का कोई तरीका है कि क्या कोई तारीख 1 घंटे से कम है?

कुछ इस तरह:

<script>
// old date
var olddate = new Date("February 9, 2012, 12:15");

// current date
var currentdate = new Date();

if (olddate >= currentdate - 1 hour) {
    alert("newer than 1 hour");
else {
    alert("older than 1 hour");
}
</script>

इसके अलावा, अलग-अलग सवाल - क्या एक तारीख में घंटों को जोड़ने का एक तरीका है?

ऐशे ही:

<script>
var olddate = new Date("February 9, 2012, 12:15") + 15 HOURS; // output: February 10, 2012, 3:15
</script>

आपका दूसरा सवाल stackoverflow.com/questions/1050720/…
Pbirkoff

जवाबों:


156

परिभाषित करें

var ONE_HOUR = 60 * 60 * 1000; /* ms */

तो आप कर सकते हैं

((new Date) - myDate) < ONE_HOUR

एक तारीख से एक घंटे पाने के लिए, प्रयास करें

new Date(myDate.getTime() + ONE_HOUR)                       

क्या यह उन तारीखों को स्वीकार नहीं करेगा जो घंटे से पहले हैं? (यानी एक नकारात्मक अंतर)
information_interchange

1
@information_interchange, हाँ। यदि n घंटे पहले के समान हैं-भविष्य में घंटे हैं, तो भविष्य की सभी तिथियाँ एक घंटे पहले से कम हैं।
माइक सैमुअल

52

कुछ ES6 सिंटैक्स का उपयोग करना:

const lessThanOneHourAgo = (date) => {
    const HOUR = 1000 * 60 * 60;
    const anHourAgo = Date.now() - HOUR;

    return date > anHourAgo;
}

मोमेंट लाइब्रेरी का उपयोग करना :

const lessThanOneHourAgo = (date) => {
    return moment(date).isAfter(moment().subtract(1, 'hours'));
}

मोमेंट के साथ शॉर्टहैंड सिंटैक्स :

const lessThanOneHourAgo = (date) => moment(date).isAfter(moment().subtract(1, 'hours'));

यह भी साथ काम करता है dayjsconst lessThanOneHourAgo = (date) => { return dayjs(date).isAfter(dayjs().subtract(1, 'hours')); };
turrican_34

यह मेरी जरूरत के बहुत करीब था। जो पहले था अधिक thanXHours, इसलिए मैंने अभी isAfter के बाद isBefore जोड़ा!
उर्सक्वाइरेल

9

पल पुस्तकालय वास्तव में मदद की इस व्यक्त कर सकते हैं। यह ट्रिक डेट लेने, समय जोड़ने और यह देखने के लिए है कि क्या यह अब से पहले या बाद में है:

  lastSeenAgoLabel: function() {
    var d = this.lastLogin();
    if (! moment(d).isValid()) return 'danger';  // danger if not a date.
    if (moment(d).add(10, 'minutes').isBefore(/*now*/)) return 'danger'; // danger if older than 10 mins
    if (moment(d).add(5,  'minutes').isBefore(/*now*/)) return 'warning'; // warning if older than 5mins
    return 'success';  // Looks good!
  },

2
//for adding hours to a date
Date.prototype.addHours= function(hrs){
    this.setHours(this.getHours()+hrs);
    return this;
}

इस तरह से कॉल फ़ंक्शन:

//test alert(new Date().addHours(4));

2

इस मामले में पल का उपयोग करना बहुत आसान होगा, आप यह कोशिश कर सकते हैं:

    let hours = moment().diff(moment(yourDateString), 'hours');

यह आपको 1,2,5,0etc जैसे पूर्णांक मान देगा ताकि आप आसानी से स्थिति जाँच जैसे:

if(hours < 1) {

इसके अलावा, एक और बात यह है कि इस प्रकार के परिणाम का उपयोग करने के लिए आप समय के अंतर का अधिक सटीक परिणाम प्राप्त कर सकते हैं (1.2,1.5,0.7etc जैसे दशमलव में) इस वाक्यविन्यास का उपयोग करें:

let hours = moment().diff(moment(yourDateString), 'hours', true);

यदि आपके पास कोई और प्रश्न हो तो मुझे बताएं


0

आप इसे निम्नानुसार कर सकते हैं:

  1. पहले मिलिसेकंड में दो तिथियों का अंतर खोजें
  2. मिलीसेकंड को मिनटों में परिवर्तित करें
  3. यदि मिनट 60 से कम हैं, तो इसका मतलब है कि तारीख घंटे के भीतर है, घंटे के भीतर नहीं।
var date = new Date("2020-07-12 11:30:10");
var now = new Date();
var diffInMS = now - date;
var msInHour = Math.floor(diffInMS/1000/60);
if (msInHour < 60) {
    console.log('Within hour');
} else {
    console.log('Not within the hour');
}

-2

// कोशिश यह है: // दो तारीख की तुलना करने के लिए:

<Script Language=Javascript>
function CompareDates() 
{ 
    var str1 = document.getElementById("Fromdate").value;
    var str2 = document.getElementById("Todate").value;
    var dt1  = parseInt(str1.substring(0,2),10); 
    var mon1 = parseInt(str1.substring(3,5),10);
    var yr1  = parseInt(str1.substring(6,10),10); 
    var dt2  = parseInt(str2.substring(0,2),10); 
    var mon2 = parseInt(str2.substring(3,5),10); 
    var yr2  = parseInt(str2.substring(6,10),10); 
    var date1 = new Date(yr1, mon1, dt1); 
    var date2 = new Date(yr2, mon2, dt2); 

    if(date2 < date1)
    {
        alert("To date cannot be greater than from date");
        return false; 
    } 
    else 
    { 
        alert("Submitting ...");
    } 
} 

</Script>

आशा है कि यह 4 यू काम करेगा ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.