【问题标题】:How to enumerate dates between two dates with moment JS如何用时刻JS枚举两个日期之间的日期
【发布时间】:2022-06-10 01:55:05
【问题描述】:

目前使用的是wenzhixin 的Bootstrap Table 库。我正在尝试找到一种方法来设置使用数据范围原则的过滤器。

此代码“https://jsfiddle.net/wenyi/06pg2wms/11/”工作正常,但当日期格式(在引导表中)如下时它不起作用:YYY-MM-DD HH:mm :ss。 有人知道解决这个问题的方法吗?

代码适用于这种类型的日期格式:


<tr id="tr-id-1" class="tr-class-1">
        <td id="td-id-1" class="td-class-1">2019-02-01</td>
        <td>0</td>
       </tr>
       
        <tr id="tr-id-2" class="tr-class-2">
        <td id="td-id-2" class="td-class-2">2019-02-02</td>
        <td>1</td>
       </tr>
       
        <tr id="tr-id-3" class="tr-class-3">
        <td id="td-id-3" class="td-class-3">2019-02-03</td>
        <td>2</td>
       </tr>

但我想要一些适用于这些日期格式的东西:

     <tr id="tr-id-1" class="tr-class-1">
        <td id="td-id-1" class="td-class-1">2019-02-01 13:21:30</td>
        <td>0</td>
       </tr>
       
       <tr id="tr-id-2" class="tr-class-2">
        <td id="td-id-2" class="td-class-2">2019-02-02 15:23:11</td>
        <td>1</td>
       </tr>

      <tr id="tr-id-2" class="tr-class-2">
        <td id="td-id-2" class="td-class-2">2019-02-02 15:23:11</td>
        <td>1</td>
       </tr>
       
       <tr id="tr-id-3" class="tr-class-3">
        <td id="td-id-3" class="td-class-3">2019-02-03 20:21:43</td>
        <td>2</td>
       </tr>

       <tr id="tr-id-3" class="tr-class-3">
        <td id="td-id-3" class="td-class-3">2019-02-03 20:21:43</td>
        <td>2</td>
       </tr>

【问题讨论】:

  • 正如您在编写此问题时发现的那样,我们希望查看您尝试过的代码,在问题中不在某个随机的其他网站上。因此,请在此处从其他站点复制足够的代码以创建minimal reproducible example。请参阅How to Ask,了解您可以采取的更多措施来帮助您的问题不被否决或关闭。
  • 请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example

标签: javascript date momentjs date-format bootstrap-table


【解决方案1】:

Javascript代码:

$(function() 
  {
    $('#table').bootstrapTable()
  }
  )
  
//Moment.JS Return Date Ranges
function getDates(startDate, stopDate) {
    var dateArray = [];
    var currentDate = moment(startDate);
    var stopDate = moment(stopDate);
    while (currentDate <= stopDate) {
        dateArray.push( moment(currentDate).format('YYYY-MM-DD'))
        currentDate = moment(currentDate).add(1, 'days');
    }
    return dateArray;
}
 
  
  $('#ok').click( function() 
  { 

    var $table = $('#table')
    var from=$("input[type=date][name=date1]" ).val();
    var to=$("input[type=date][name=date2]" ).val();
    $table.bootstrapTable('filterBy',{ ETA: getDates(from,to)}) 
        
    
 
})

HTML 代码:

<div id="toolbar">
  <div class="form-inline" role="form">
    <div class="form-group">
      <span>From Date </span>
      <input name="date1" class="form-control w70" type="date" >
    </div>
    <div class="form-group">
      <span>To Date </span>
      <input name="date2" class="form-control w70" type="date">
    </div>
    <button id="ok" type="submit" class="btn btn-primary">OK</button>
  </div>
</div>    

<table id="table" data-toggle="table" data-toolbar="#toolbar" >
    <thead>
    <tr>
        <th data-field="ETA">Date</th>
        <th data-field="number">Number</th>
    </tr>
    
    </thead>
    <tbody>
    
    <tr id="tr-id-1" class="tr-class-1">
        <td id="td-id-1" class="td-class-1">2019-02-01</td>
        <td>0</td>
       </tr>
       
        <tr id="tr-id-2" class="tr-class-2">
        <td id="td-id-2" class="td-class-2">2019-02-02</td>
        <td>1</td>
       </tr>
       
        <tr id="tr-id-3" class="tr-class-3">
        <td id="td-id-3" class="td-class-3">2019-02-03</td>
        <td>2</td>
       </tr>
       
       
        <tr id="tr-id-4" class="tr-class-4">
        <td id="td-id-4" class="td-class-4">2019-02-04</td>
        <td>3</td>
       </tr>
       
       
        <tr id="tr-id-5" class="tr-class-5">
        <td id="td-id-5" class="td-class-5">2019-02-05</td>
        <td>4</td>
       </tr>
       
       
        <tr id="tr-id-6" class="tr-class-6">
        <td id="td-id-6" class="td-class-6">2019-02-06</td>
        <td>5</td>
       </tr>
       
        
        <tr id="tr-id-7" class="tr-class-7">
        <td id="td-id-7" class="td-class-7">2019-02-07</td>
        <td>6</td>
       </tr>
       
        
        <tr id="tr-id-8" class="tr-class-8">
        <td id="td-id-8" class="td-class-8">2019-02-08</td>
        <td>7</td>
       </tr>
       
        
        <tr id="tr-id-9" class="tr-class-9">
        <td id="td-id-9" class="td-class-9">2019-02-09</td>
        <td>8</td>
       </tr>
       
       
        
        <tr id="tr-id-10" class="tr-class-10">
        <td id="td-id-10" class="td-class-10">2019-02-10</td>
        <td>9</td>
       </tr>
       
  
    </tbody>
</table>

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2014-07-10
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多