簡體   English   中英

我無法通過用戶使用 html 和 javascript 輸入給定日期來找到以前的日期。 你能幫幫我嗎

[英]I'm unable to find a previous date by inputing a given date by a user using html and javascript. Can you please help me out

'這是 HTML 代碼'

<form>
  <div class="input-field">
    <label>Choose Date</label>
    <input type="date" id="date" onchange="myDate();" required>
  </div>
  <div class="input-fields">
    <label>Previous Date</label>
    <input type="date" id="previous" readonly>
  </div>
</form>

'這是 Javascript 代碼'

<script>
    function myDate()
      {
      const currDate = document.getElementById("date");
      const date = new Date(currDate)
      if (typeof date === 'object' && date !== null && 'getDate' in date) {
      console.log("The data type is", typeof date)
      console.log(date.getDate())}
      else {
        console.log("Invalid Date Object")
      }
      date.setDate(date.getDate()-1);
      const previous = document.write(date);
      document.getElementById("previous").value = previous;
      }
</script>

我正在嘗試通過在 Javascript 中使用 myDate 函數來獲取上一個日期,但我收到錯誤 getDate is not a function 然后我嘗試將 getDate 作為函數,現在它顯示相同的錯誤。 我無法將 getDate 作為函數或獲取以前的日期值

是適合您的解決方案。

您遇到的第一個問題是您在currDate中獲得了元素而不是值。

在那之后,我不明白你試圖對你previous的變量做什么,但是你用更新的日期覆蓋了實際的DOM

最后,您必須將要在另一個字段上設置的日期轉換為接受的字符串,因此您需要截斷toISOString()方法以返回格式為YYYY-MM-DD的日期(因為這就是您如果從初始輸入中讀取)。

function myDate()
{
  const currDate = document.getElementById("date").value;
  const date = new Date(currDate)
  
  if (typeof date === 'object' && date !== null && 'getDate' in date) {
    console.log("The data type is", typeof date)
    console.log(date.getDate())}
  else {
    console.log("Invalid Date Object")
  }
  date.setDate(date.getDate()-1);
  document.getElementById("previous").value = date.toISOString().split('T')[0];
}

問題在於new Date(currDate)在這里您使用element創建新日期,因此您需要執行new Date(currDate.value)然后您需要根據日期選擇器接受的日期來格式化日期yyyy-MM-DD

 function myDate() { const currDate = document.getElementById("date"); const date = new Date(currDate.value) if (typeof date === 'object' && date !== null && 'getDate' in date) { console.log("The data type is", typeof date) console.log(date.getDate()) } else { console.log("Invalid Date Object") } date.setDate(date.getDate() - 1); document.getElementById("previous").value = formateDate(date); } function formateDate(d) { return d.getFullYear() + '-' + ("0" + (d.getMonth() + 1)).slice(-2) + '-' + ("0" + d.getDate()).slice(-2) ; }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> </style> </head> <body> <form> <div class="input-field"> <label>Choose Date</label> <input type="date" id="date" onchange="myDate();" required> </div> <div class="input-fields"> <label>Previous Date</label> <input type="date" id="previous"> </div> </form> </body> </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM