我有一个包含多行的表。我在结尾处有一个删除链接,单击将删除该行。但是,如果我的本地时间在开始日期和结束日期之间,则我必须显示一条维护窗口消息:
例如:当地时间:2月2日,星期二,12:27PM
    开始日期:2月2日,星期二,11:11AM和结束日期:周三:2月3,11:11 AM
上面的当地时间介于开始日期和结束日期之间。因此,当我删除该行时,我首先检查被删除的行在本地时间之间是否有“开始日期”和“结束日期”,如果显示,则显示消息。

这是表格的html:

<table id="show-list">
      <thead>
    <tr>
      <th>Id</th>
      <th>Subject</th>
      <th>Start Date</th>
      <th>End Date</th>
    </tr>
  </thead>
  <tbody>
      <tr>
        <td>12</td>
        <td>abc</td>
        <td>
            <time datetime="Tue Feb2 2016, 11:27AM">Tue Feb2, 12:27PM</time>
        </td>
        <td>
          <time datetime="Wed Feb3 2016, 11:27AM">Wed Feb3, 11:27AM</time>
        </td>
        <td><a href="#">Delete Row</a></td>
      <tr>
      <tr>
        <td>123</td>
        <td>hru</td>
        <td>
            <time datetime="Tue Feb23 2016, 11:27AM">Tue Feb23, 12:27PM</time>
        </td>
        <td>
          <time datetime="Wed Feb24 2016, 11:27AM">Wed Feb24, 11:27AM</time>
        </td>
        <td><a href="#" class="deleterow">Delete Row</a></td>
      <tr>
  </tbody>
 </table>
 <div id="div" style="display:none;"></div>


js:

$('.deleterow').on('click', function(e) {
  var $this = $(this);
  $.ajax({
      url: "/url/delete",
  }).done(function(result) {
   var now = Date.now();
        $this.parent().find("time").each(function(arg,log){
          //not sure how to check for the start and end dates here to see if its between the current time.
        });
 });


帮助极大的赞赏!谢谢

最佳答案

首先,您需要使用JavaScript Date.parse()函数可以解释的格式的日期。例如:

var earliest = Date.parse('2016-03-04T11:24')


自1970年1月1日起,它将返回毫秒数。在这种情况下,数字为1457090640000。Date.now()也会产生这种数字。

现在,您可以比较两个数字:

if (earliest < now) {
    // do something...
}


在“最新”日期做同样的事情,您就被设置了。

但是请记住:如果在浏览器中运行代码,则Date.now()会生成用户浏览器认为的今天。如果您需要本地时间,则可能需要使用一些服务器端代码。例如,您可以为在服务器上呈现HTML时受影响的每一行定义一个JavaScript变量或数据属性。

09-16 02:16