【问题标题】:Comparing two dates in Javascript having different formats比较具有不同格式的Javascript中的两个日期
【发布时间】:2019-08-08 09:34:32
【问题描述】:

我有一个从 FTP 位置获取日期的表。 在我的用户界面页面中,我有一个表单,它将获取与该特定 FTP 日期相关的所有详细信息。我无法将 FTP 日期与我在表格中指定的日期进行比较。

我的 FTP 日期采用给定格式“2019 年 8 月 2 日星期五 14:01:00 GMT+0530(印度标准时间)”。app.js 页面已编码为呈现 result.js。我的 HTML 表格的第 15 列指向 FTP 日期

以下代码从 FTP JSON 数据中获取日期并存储在数组(app.js)中。

 ftpTime.push(datadirJson1[j]['date'])

以下代码来自 Result.js,它根据日期过滤表记录

 <script>
        //Function to filter the table element by ticketName
       function myFunction() {
            alert("Fetching table result")
            var input, filter, table, tr, td, i, txtValue;
            input = document.getElementById("myInput");
            filter = input.value;
            table = document.getElementById("myTable");
            tr = table.getElementsByTagName("tr");
            for (i = 0; i < tr.length; i++) {
                td = tr[i].getElementsByTagName("td")[14];
                if (td) {
                    txtValue = td.textContent || td.innerText;
                    if (txtValue.includes(filter)) {
                        tr[i].style.display = "";
                    } else {
                        tr[i].style.display = "none";
                    }
                }
            }
        }
    </script>

这是我在 result.js 页面中的表单,它将用户输入作为日期

 <form onsubmit="myFunction();return false" action="/result" method="GET">
        <div id="ticketDate">


           DATE:
            <input type="date" name="myInput" id="myInput">


            <input type="submit" name="submit" id="submit" value="submit">
        </div>
    </form>```

【问题讨论】:

  • 问题是什么?
  • 请参阅指南,了解如何在 SO 上提出好问题。 stackoverflow.com/help/how-to-ask
  • 问题是如何根据日期过滤我的表格。该表以这种格式获取“2019 年 7 月 25 日星期四 12:22:00 GMT+0530(印度标准时间)”中的日期,而用户输入将采用 mm/dd/yy 格式的日期。跨度>

标签: javascript html node.js express


【解决方案1】:

您可以使用momentjs 来执行此操作。

https://momentjs.com/安装 然后在您的比较代码上,调用以下代码:

if (td) {
  txtValue = td.textContent || td.innerText;

  if (moment(txtValue).isSame(moment(filter))) {
    tr[i].style.display = "";
  } else {
    tr[i].style.display = "none";
  }
}

如果使用 moment() 解析日期时出现问题,请查看他们的文档以获取更多信息。这很简单。

【讨论】:

    【解决方案2】:

    你可以使用 js Date,它可以解析一些日期格式(你的作品),然后使用数学符号进行比较(+-&lt;&gt;,...)

    let externalDate = "Fri Aug 02 2019 14:01:00 GMT+0530 (India Standard Time)"
    
    let myFunction = () => {
      let myInput = document.getElementById("myInput")
      
      let extDate = new Date(externalDate)
      let date = new Date(myInput.value)
    
      console.log(`${extDate} is ${extDate > date ? "after" : "before" } ${date}`)
    }
    <form onsubmit="myFunction();return false" action="/result" method="GET">
            <div id="ticketDate">
    
    
               DATE:
                <input type="date" name="myInput" id="myInput">
    
    
                <input type="submit" name="submit" id="submit" value="submit">
            </div>
        </form>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多