Moment JS日期范围

时间:2017-02-12 07:14:17

标签: javascript jquery momentjs

我想根据星期几显示/隐藏表格行。我现在的代码显示/隐藏基于24小时的时间段,而不是日历天:

<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();
    }
  });
});

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

使用.weekday方法获取基于工作日的数字,星期日将获得0,星期一将获得1等。

  

根据区域设置获取或设置星期几。

示例:

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

请注意,该方法可从本地知晓,来自文档

  

如果语言环境将星期一指定为一周的第一天,则moment()。weekday(0)将是星期一。如果星期日是一周的第一天,则星期()。星期日(0)将是星期日。