2017-08-30 24 views
0

嘗試過濾js對象列表,方法是隻顯示過期日期大於或等於今天的那些記錄,其中今天的日期格式爲YYYY.MM.DD以YYYY/MM/DD格式過濾「javascript」對象列表中的「date」

window.members = [ 
 
     { 
 
     LastName: "MacKenzie", 
 
     FirstName: "Randy", 
 
     Expires: "2019.08.12" 
 
     }, 
 
     { 
 
     LastName: "Ahmed", 
 
     FirstName: "Jamshed", 
 
     Expires: "2017.10.05" 
 
     }, 
 
     { 
 
     LastName: "Attaya", 
 
     FirstName: "Jim", 
 
     Expires: "2018.01.12" 
 
     }, 
 
    ]; 
 
    
 
$(document).ready(function() { 
 
    window.members.filter(function (members) { 
 
    return members.Expires >= "2017.08.30"; 
 
    }); 
 

 

 
    var html = ""; 
 
    for (var i = 0; i < window.members.length; i++) { 
 
    html+="<div class='members-name'>"; 
 
    html+=""+window.members[i].LastName+", "; 
 
    html+=""+window.members[i].FirstName+" </div><div class='members-exp'>"; 
 
    html+=""+window.members[i].Expires+" </div>"; 
 
    } 
 

 
    $("div").html(html); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div"></div>

回答

1

我已經添加了一個項目到您的數組與今天之前的日期。正如你在輸出中看到的那樣,它會被過濾掉。

window.members = [ 
 
     { 
 
     LastName: "Test", 
 
     FirstName: "Test", 
 
     Expires: "2015.01.01" 
 
     }, 
 
     { 
 
     LastName: "MacKenzie", 
 
     FirstName: "Randy", 
 
     Expires: "2019.08.12" 
 
     }, 
 
     { 
 
     LastName: "Ahmed", 
 
     FirstName: "Jamshed", 
 
     Expires: "2017.10.05" 
 
     }, 
 
     { 
 
     LastName: "Attaya", 
 
     FirstName: "Jim", 
 
     Expires: "2018.01.12" 
 
     }, 
 
    ]; 
 
    
 
$(document).ready(function() { 
 
    // Create a new date object, it will be the current date. 
 
    var today = new Date(); 
 
    // Set all time components to 0 so the date is at midnight. 
 
    today.setHours(0, 0, 0, 0); 
 

 
    // Get a new array with only the members that have an expiration date 
 
    // that falls on today or later. 
 
    var filteredMembers = window.members.filter(function (members) { 
 
    return (new Date(members.Expires).getTime() >= today.getTime()); 
 
    }); 
 

 
    // Initialize the string to hold the HTML to add to the DOM. 
 
    var html = ""; 
 
    // Iterate over all the members that passed the filter. 
 
    filteredMembers.forEach(member => { 
 
    // Add the HTML for the member to the string. 
 
    html += `<div class="members-name">${member.LastName}, ${member.FirstName}</div><div class="members-exp">${member.Expires}</div>`; 
 
    }); 
 

 
    // Assign the constructed string to the div. 
 
    $("div").html(html); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div"></div>

+0

完美的作品。我們的象棋俱樂部已經保存了! – verlager

+0

這是個好消息! – Thijs

0

new Date()今天返回你的時區的日期。

var newDate = new Date(); 
newDate.setHours(0,0,0,0); 
for (var i = 0; i < window.members.length; i++) { 
    var expiresDate = new Date(window.members[i].Expires); 
    //equality operators require you to use getTime() 
    if(expiresDate.getTime() >= newDate.getTime()){ 
     html+="<div class='members-name'>"; 
     html+=""+window.members[i].LastName+", "; 
     html+=""+window.members[i].FirstName+" </div><div class='members-exp'>"; 
     html+=""+window.members[i].Expires+" </div>"; 
    } 

}