【问题标题】:How to show/hide a span depending on whether the local time is equal to between a “startdate” and “enddate” Jquery如何根据本地时间是否等于“开始日期”和“结束日期”Jquery 来显示/隐藏跨度
【发布时间】:2016-05-11 20:23:32
【问题描述】:

我有一个由多行组成的表。我最后有一个删除链接,单击将删除该行。但是,如果我的本地时间在开始日期和结束日期之间,我必须显示维护窗口消息: eg:当地时间:2月2日星期二,12:27PM 开始日期:2 月 2 日星期二上午 11:11 结束日期:星期三:2 月 3 日上午 11:11 上述本地时间介于开始日期和结束日期之间。因此,当我删除该行时,我首先检查删除的行是否具有本地时间之间的“开始日期”和“结束日期”,如果是则显示消息。

这是表格的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 jquery


    【解决方案1】:

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

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

    这将返回自 01.01.1970 以来的毫秒数。在这种情况下,数字是 1457090640000。Date.now() 也会产生这种数字。

    现在你可以比较这两个数字了:

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

    为“最新”日期做同样的事情,你就做好了。

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

    【讨论】:

      【解决方案2】:

      这里是简单的示例,但您需要定义日期格式:

              var now = Date.now(),
              start = $this.parent().parent().find('time')[0].getAttribute('datetime'),
              end = $this.parent().parent().find('time')[1].getAttribute('datetime');
              start = new Date(start.replace('AM', ' AM'));
              end = new Date(end.replace('AM', ' AM'));
              if ((start.getTime()  <= now.getTime()  && now.getTime()  <= end.getTime() )){
                  alert("date contained");
              }
      

      【讨论】:

        猜你喜欢
        • 2016-05-03
        • 1970-01-01
        • 2018-12-25
        • 1970-01-01
        • 2021-07-21
        • 2021-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多