2017-02-12 87 views
0

我想基於星期幾來顯示/隱藏我的錶行。我此刻的代碼顯示/基於24小時時間段皮,而不是日曆天:矩JS的日期範圍

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 



<button type="button" id="button1">Monday</button> 
<button type="button" id="button2">Tuesday</button> 

<table id="myTable"> 
<thead> 
    <tr> 
    <th>Table</th> 
    </tr> 
</thead> 

<tbody> 
    <tr>   
    <td class="dates">13/02/2017 12:45 pm</td>  
    </tr> 

    <tr> 
    <td class="dates">14/02/2017 12:45 pm</td>  
    </tr> 

</tbody> 


$('#button1').click(function(){ 
    var $dates = $('.dates'); 
    var m = moment().add(1, 'd'); 

$dates.each(function() { 
    var date = moment($(this).text(), 'DD/MM/YYYY hh:mm a'); 
    if (date.isBetween(moment(), m)) { 
     $(this).parent().show(); 
    } else { 
     $(this).parent().hide(); 
    } 
    }); 
}); 

回答

0

由於「DDDD」在moment.format()代表星期名稱,你可以很容易地進行比較與按鈕標籤。

通過向它們添加通用類,將點擊處理程序附加到所有按鈕。 jQuery允許選擇符合選擇條件的所有元素。

一旦你進入處理程序,採取點擊按鈕的標籤,並將其與解析日期進行比較,以決定每個顯示/隱藏。

$('.day-btns').click(function() { 
 
    var btnText = $(this).text(); 
 
    $('.dates').each(function() { 
 
    var date = moment($(this).text(), 'DD/MM/YYYY hh:mm a'); 
 
    if (date.format('dddd') == btnText) { 
 
     $(this).parent().show(); 
 
    } else { 
 
     $(this).parent().hide(); 
 
    } 
 
    }); 
 
    
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button type="button" class="day-btns" id="button1">Monday</button> 
 
<button type="button" class="day-btns" id="button2">Tuesday</button> 
 

 
<table id="myTable"> 
 
<thead> 
 
    <tr> 
 
    <th>Table</th> 
 
    </tr> 
 
</thead> 
 

 
<tbody> 
 
    <tr>   
 
    <td class="dates">13/02/2017 12:45 pm</td>  
 
    </tr> 
 

 
    <tr> 
 
    <td class="dates">14/02/2017 12:45 pm</td>  
 
    </tr> 
 

 
</tbody>

0

使用.weekday方法獲取基礎上,一週一天的工作,你會爲星期日,1代表星期一,等拿到0 ..

獲取或設置的一天根據現場的一週。

例:

moment().weekday(); // code ran on a sunday 
// 0 
moment(new Date(1, 12, 2005)).weekday(); 
// 5 

注意,這個方法是本地的瞭解,從文檔

如果locale週一分配作爲一週的第一天,時刻()平日(0)將是星期一。如果星期日是一週的第一天,那麼時刻(),星期幾(0)將是星期日。

+0

謝謝我不知道這個解決方案。 –