জেএস: পরীক্ষা করুন যে তারিখটি 1 ঘন্টা আগে কম আছে?


97

কোনও তারিখ 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

উত্তর:


159

সংজ্ঞা দিন

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

তাহলে আপনি করতে পারেন

((new Date) - myDate) < ONE_HOUR

একটি তারিখ থেকে এক ঘন্টা পেতে, চেষ্টা করুন

new Date(myDate.getTime() + ONE_HOUR)                       

এই কি ঘন্টা আগে আগে তারিখগুলি গ্রহণ করবে না? (অর্থাত একটি নেতিবাচক ডিফারেনশিয়াল)
information_interchange

4
@ তথ্য_ইন্টারচেঞ্জ, হ্যাঁ যদি n ঘন্টা আগে ভবিষ্যতে ঘন্টা-ঘন্টা একই হয়, তবে ভবিষ্যতের সমস্ত তারিখ এক ঘণ্টারও কম আগে।
মাইক স্যামুয়েল

55

কিছু 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'));

এটি ডেজেসের সাথেও কাজ করে । const lessThanOneHourAgo = (date) => { return dayjs(date).isAfter(dayjs().subtract(1, 'hours')); };
টারিকান_ 34

এটি আমার যা প্রয়োজন ছিল তার খুব কাছাকাছি ছিল। যা আরও বেশি থ্যানএক্সএইচআরএস আগে ছিল, তাই আমি সবেমাত্র isAfter এর পরিবর্তে isBear পূর্ব!
ইউরস্কুইরেল

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>

আশা করি এটি আপনার কাজ করবে ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.