在前面的章节中,我们讨论了日期方法和构造函数。

在这里,借助这些方法,我们将学习如何比较日期。

基本上,有不同的方式可以进行日期比较,例如:

  1. 比较两个日期。
  2. 比较日期和时间。
  3. 使用getTime()比较日期。

比较两个日期

示例:

<!DOCTYPE html>
<html>
<head>
  <title>比较日期</title>
</head>
<body>
  <script>
    function compareDates() {
      var date1 = new Date('2020-01-23');
      var date2 = new Date('2020-01-21');
      
      if (date1 > date2) {
        document.write("True,第一个日期大于第二个日期");
      } else if (date1 < date2) {
        document.write("False,第二个日期小于第一个日期");
      } else {
        document.write("两个日期相同");
      }
    }
    
    compareDates();
  </script>
</body>
</html>

比较日期和时间

示例1: 比较具有不同时间的不同日期

<!DOCTYPE html>
<html>
<head>
  <title>比较日期和时间</title>
</head>
<body>
  <script>
    var date1 = new Date("Apr 17, 2019 12:10:10");
    var date2 = new Date("Dec 1, 2019 12:10:30");
    
    if (date1 > date2) {
      document.write("False,date1 的日期和时间小于 date2 的日期和时间");
    } else if (date1 < date2) {
      document.write("True,date2 的日期和时间更大");
    } else {
      document.write("日期和时间相同");
    }
  </script>
</body>
</html>

示例2: 比较具有不同时间的相同日期

<!DOCTYPE html>
<html>
<head>
  <title>比较日期和时间</title>
</head>
<body>
  <script>
    var date1 = new Date("2018-01-10, 12:10:10");
    var date2 = new Date("2018-01-10, 12:10:50");
    
    if (date1 > date2) {
      document.write("False,date1 和 date2 日期相同,但 date2 时间大于 date1 时间");
    } else if (date1 < date2) {
      document.write("True,date2 时间大于 date1 时间");
    } else {
      document.write("日期和时间相同");
    }
  </script>
</body>
</html>

使用getTime()比较日期

更好的方法是使用getTime()函数来比较日期。该函数将日期转换为数字值,以便直接进行比较。

示例1: 比较当前日期和时间与给定的日期和时间

<!DOCTYPE html>
<html>
<head>
  <title>使用getTime()比较日期</title>
</head>
<body>
  <script>
    var date1 = new Date("2019-10-10, 10:10:10");
    var currentDate = new Date();
    
    if (date1.getTime() < currentDate.getTime()) {
      document.write("True,当前日期和时间大于 d1");
    } else if (date1.getTime() > currentDate.getTime()) {
      document.write("False");
    } else {
      document.write("True,相同");
    }
  </script>
</body>
</html>

示例2: 比较两个不同的日期和时间

<!DOCTYPE html>
<html>
<head>
  <title>使用getTime()比较日期</title>
</head>
<body>
  <script>
    var date1 = new Date("2019-10-10, 10:10:10");
    var date2 = new Date("2019-11-02, 14:19:05");
    
    if (date1.getTime() < date2.getTime()) {
      document.write("True,date1 的日期和时间小于 date2 的日期和时间");
    } else if (date1.getTime() > date2.getTime()) {
      document.write("False,date2 的日期和时间大于 date1");
    } else {
      document.write("True,date1 和 date2 具有相同的日期和时间");
    }
  </script>
</body>
</html>

因此,我们可以以多种方式比较日期。

更改日期格式

我们还可以通过 JavaScript 代码更改或设置格式。getFullYear()getMonth()getDate() 函数允许根据需要设置日期格式。

示例1: 将日期格式更改为 'yyyy-mm-dd'

<!DOCTYPE html>
<html>
<head>
  <title>更改日期格式</title>
</head>
<body>
  <script>
    var current_date = new Date();
    var formatted_date = current_date.getFullYear() + "-" + (current_date.getMonth() + 1) + "-" + current_date.getDate();
    document.write("格式为 yyyy-mm-dd: " + formatted_date);
  </script>
</body>
</html>

我们还可以根据需要设置日期和时间格式。

示例2: 将日期时间格式更改为 'yyyy-dd-mm hh:mm:ss'

<!DOCTYPE html>
<html>
<head>
  <title>更改日期时间格式</title>
</head>
<body>
  <script>
    var current_datetime = new Date();
    var formatted_datetime = current_datetime.getFullYear() + "-" + (current_datetime.getMonth() + 1) + "-" + current_datetime.getDate() + " " + current_datetime.getHours() + ":" + current_datetime.getMinutes() + ":" + current_datetime.getSeconds();
    document.write("格式为 yyyy-dd-mm hh:mm:ss: " + formatted_datetime);
  </script>
</body>
</html>

标签: js, JavaScript, JavaScript语言, JavaScript开发, JavaScript语法, JavaScript脚本, JavaScript教程, JavaScript入门, JavaScript入门教程, JavaScript进阶, JavaScript宝典, JavaScript学习, JavaScript指南, JavaScript大全