首頁 > web前端 > js教程 > 如何使用 JavaScript 檢查輸入日期是否等於今天的日期?

如何使用 JavaScript 檢查輸入日期是否等於今天的日期?

王林
發布: 2023-08-26 15:33:12
轉載
1350 人瀏覽過

如何使用 JavaScript 检查输入日期是否等于今天的日期?

在本教學中,我們學習檢查輸入日期是否等於今天的日期,或不使用 JavaScript。有時,我們需要從輸入欄位中以各種格式取得使用者的日期,並檢查輸入日期和今天的日期是否相符。

在這裡,我們將學習兩種方法來檢查輸入日期與今天的日期是否相等。

分別比較年、月、日

使用者可以使用 getFullYear()、getMonth() 和 getDate() 等各種方法從 Date 物件的時間戳記中取得完整的年、月和日期。此外,我們可以透過以分隔符號分割使用者輸入的字串來取得年、月和日期。

之後,我們可以比較兩個時間戳記的年、月、日來檢查輸入日期是否等於今天的日期。

文法

使用者可以按照下面的語法來匹配輸入日期與今天的日期是否相等。

let inputYear = dateInput.value.split("/")[0];
let inputMonth = dateInput.value.split("/")[1];
let inputDate = dateInput.value.split("/")[2];
if (current_date.getFullYear() == inputYear && current_date.getMonth() == inputMonth - 1 && current_date.getDate(); == inputDate) {
   // date is equal to today’s date
} else{
   // date is not equal to today’s date
}
登入後複製

在上面的語法中,用「/」分割輸入字串後,我們得到一個包含三個值的陣列。第一個值是年份,第二個值是月份,第三個值是日期。

演算法

使用者可以遵循以下演算法。

  • 第 1 步 - 以特定格式從使用者取得日期。

  • 步驟 2 - 拆分日期字串並提取年、月和日期。這裡,我們使用了 JavaScript 的 split() 方法來分割日期字串。

  • 第 3 步 - 使用 new Date() 建構子建立一個等於今天日期的日期。

  • 第 4 步 - 使用 getFullYear()、getMonth() 和 getDate() 方法從今天的日期中提取年、月和日期。

  • 步驟 5 - 比較兩個時間戳記的年、月、日期。 getMonth() 方法傳回 0 到 11 之間的月份。因此,我們需要將該月份與 inputMonth – 1 進行比較。

  • 第 6 步 - 如果兩個日期的所有三個屬性都匹配,則輸入日期等於今天的日期。

範例

在下面的範例中,我們建立了compareDate() 函數。當使用者按下提交按鈕並在輸入欄位中輸入日期字串時,它會呼叫compareDate()函數。

compareDate() 函數實作上述演算法來檢查輸入日期是否等於今天的日期。

<html>
<body>
   <h3>Comparing the <i>date, month, and year</i> separately to check if input the date is equal to today's date </h3>
   <h4>Enter the date in yyyy/mm/dd format.</h4>
   <input type="text" id="dateInput" />
   <button id = "submit" onclick = "compareDate()"> submit </button>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let dateInput = document.getElementById("dateInput");
      function compareDate() {
         // split the input string
         let inputYear = dateInput.value.split("/")[0];
         let inputMonth = dateInput.value.split("/")[1];
         let inputDate = dateInput.value.split("/")[2];

         let current_date = new Date();
         // get the month, year, and date from the time stamp
         let year = current_date.getFullYear();
         let month = current_date.getMonth();
         let day = current_date.getDate();
         // compare year, month, and date
         if (year == inputYear && month == inputMonth - 1 && day == inputDate) {
            output.innerHTML = "Date is equal to today's date!";
         } else {
            output.innerHTML = "Date is not equal to today's date!";
         }
      }
   </script>
</body>
</html>
登入後複製

使用 toDateString() 方法

我們可以將 toDateString() 方法與 Date 物件的時間戳一起使用,該方法只傳回時間戳記中的日期字串。

我們可以使用從使用者輸入中取得的任何值來建立 Date 物件的新時間戳,並使用 toDateString() 方法來取得日期字串。接下來,我們也可以建立代表今天日期的目前日期並使用 toDateString() 方法。

最後,我們可以比較兩個時間戳記的日期字串。

文法

使用者可以按照以下語法使用 toDateString() 方法檢查輸入是否等於今天的日期。

let [year, month, date] = dateInput.value.split(",");
let inputDate = new Date(year, month - 1, date);
let current_date = new Date();
if (inputDate.toDateString() == current_date.toDateString()) {
   // it’s today’s date.
} else {
   // It’s not matching with today’s date
}
登入後複製

在上面的語法中,我們使用年、月 – 1 和日期值建立了輸入日期的時間戳記。由於 Date 物件的月份值介於 0 到 11 之間,因此我們需要提供月份 – 1。

範例

以下範例以特定格式在文字輸入欄位中從使用者取得日期字串。之後,我們從字串中提取年、月和日期並創建一個新日期。

接下來,我們比較兩個時間戳的日期字串。

<html>
<body>
   <h3>Using the <i> toDateString() </i> method to check if input the date is equal to today's date </h3>
   <h4>Enter the date in yyyy,mm,dd format.</h4>
   <input type = "text" id = "dateInput" />
   <button id = "submit" onclick = "compareDate()"> submit </button>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let dateInput = document.getElementById("dateInput");
      function compareDate() {
         // extract the year, month, and date
         let [year, month, date] = dateInput.value.split(",");
         let inputDate = new Date(year, month - 1, date);
         let current_date = new Date();
         if (inputDate.toDateString() == current_date.toDateString()) {
            output.innerHTML = "Date is equal to today's date!";
         } else {
            output.innerHTML = "Date is not equal to today's date!";
         }
      }
   </script>
</body>
</html>
登入後複製

在上面的輸出中,使用者可以觀察到以無效格式輸入日期將在控制台中產生錯誤。

使用者學習了兩種方法來檢查日期是否等於今天的日期。但是,使用者也可以使用 setHours() 方法。我們可以在日期物件中將小時設為 0,並將其與今天的日期進行比較以檢查是否相等。

以上是如何使用 JavaScript 檢查輸入日期是否等於今天的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板