2012-02-10 21 views
60

Có cách nào để kiểm tra xem ngày có dưới 1 giờ không?JS: Kiểm tra xem ngày có dưới 1 giờ trước không?

Something như thế này:

<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> 

Ngoài ra, câu hỏi khác nhau - là có một cách để thêm giờ để một ngày?

Như thế này:

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

câu hỏi thứ hai của bạn là bản sao có thể có của http://stackoverflow.com/questions/1050720/adding-hours-to-javascript-date-object – Pbirkoff

Trả lời

104

Xác định

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

sau đó bạn có thể làm

((new Date) - myDate) < ONE_HOUR 

Để có được một giờ sau cuộc hẹn hò, hãy thử

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

Gọi chức năng như thế này:

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

// thử điều này: // để so sánh hai ngày của:

<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> 

Hy vọng nó sẽ làm việc 4 u ...

8

các moment library thực sự có thể giúp thể hiện điều này. Bí quyết là để có ngày, thêm thời gian, và xem nếu nó là trước hoặc sau bây giờ:

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! 
    }, 
8

Sử dụng một số cú pháp ES6:

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

    return date > anHourAgo; 
} 

Sử dụng thư viện Moment:

const lessThanOneHourAgo = (date) => { 
    return moment(date).isAfter(moment().subtract(1, 'hours')); 
} 
Các vấn đề liên quan