如何查看日期是在JavaScript之前还是之后?

时间:2020-08-12 04:41:38

标签: javascript date

给我一​​个日期const date1 = "2020-08-08"

我想检查这个日期是今天之前还是今天之后

const date1 = "2020-08-08"
const today = new Date()
if(date1 > new Date) {
    console.log("date1 is the future")
} else {
    console.log("date1 is the past")
}

上面的代码不起作用,但是我正在尝试做类似的事情。有办法吗?

5 个答案:

答案 0 :(得分:1)

尝试使用getTime()

var date1 = new Date(2020 - 08 - 08);
var today = new Date();  
if (date1.getTime() > today.getTime()) {
  // Date 1 is the Future
} else {
  // Today is the Future
}

或者您可以像date1 > today

那样直接进行比较

如果日期为string,则使用进行解析,

var date1 = Date.parse("2020-08-08");

答案 1 :(得分:0)

您可以今天提取并进行比较:

var now = new Date();
var month = (now.getMonth() + 1);               
var day = now.getDate();
if (month < 10) 
    month = "0" + month;
if (day < 10) 
    day = "0" + day;
var year = now.getFullYear();
var today = year + '-' + month + '-' + day;

您可以分别比较年,月和日,然后查看。

答案 2 :(得分:0)

以下是可以帮助您入门的摘要:

let date1 = Date.parse("2020-08-08");
let today = new Date();

if (date1 < today) {
  console.log("Date1 is in the past");
} else {
  console.log("Date1 is in the future");
}

答案 3 :(得分:0)

您可以使用date-fns库进行日期比较。

here

https://date-fns.org/v2.15.0/docs/isBefore

isAfter(date1, today);

答案 4 :(得分:0)

./bin/zookeeper-shell.sh localhost:2181 rmr /brokers/topics/mytopic rmr /admin/delete_topics/mytopic 中,表达式 new Date 返回一个字符串,因此您可以有效地比较if (date1 > new Date)。由于两个操作数都是字符串,因此将对其进行词法比较,并且由于左手字符串以数字开头,而右手字符串始终以字母开头,因此结果始终为false。

您可能想做的是:

'2020-08-08' > new Date().toString()

但是,“ 2020-08-08”将被解析为UTC,因此在8月8日,测试可能会返回true或false,具体取决于主机系统偏移设置和执行代码的时间。参见Why does Date.parse give incorrect results?