Javascript 如何转换这两种日期时间格式进行比较?

Javascript 如何转换这两种日期时间格式进行比较?,javascript,Javascript,一种是: 2020-09-20T16:26:38.000Z Sun Sep 20 2020 00:00:00 GMT-0400 (Eastern Daylight Time) 另一种形式为: 2020-09-20T16:26:38.000Z Sun Sep 20 2020 00:00:00 GMT-0400 (Eastern Daylight Time) 我只想比较日、月、年。因此,这两个日期应该相等。如何在javascript中转换这两个日期以使它们相等?只是新的日期 使用Date.g

一种是:

2020-09-20T16:26:38.000Z
Sun Sep 20 2020 00:00:00 GMT-0400 (Eastern Daylight Time)
另一种形式为:

2020-09-20T16:26:38.000Z
Sun Sep 20 2020 00:00:00 GMT-0400 (Eastern Daylight Time)
我只想比较日、月、年。因此,这两个日期应该相等。如何在javascript中转换这两个日期以使它们相等?

只是新的日期

使用
Date.getMonth()
Date.getFullYear()
const a=新日期(“太阳2020年9月20日00:00:00 GMT-0400(东部夏令时)”)
控制台日志(a)
//2020-09-20T04:00:00.000Z///result a
常数b=新日期(“2020-09-20T16:26:38.000Z”)
控制台日志(b)
//2020-09-20T16:26:38.000Z///result b
if(a.getMonth()==b.getMonth())console.log(“匹配”)

else console.log(“不匹配”)
您可以将它们都转换为日期对象(因此获得相同的格式),然后将它们转换回字符串。因为前15个字符都是日期,所以可以对它们进行子串并进行比较

编辑:您不必实际转换第二个,因为它已经是正确的格式,但为了彻底起见,我转换了

让d1=newdate('2020-09-20T16:26:38.000Z').toString().substring(0,15),
d2=新日期('Sun Sep 20 2020 00:00:00 GMT-0400')。toString().子字符串(0,15);

console.log(d1==d2)//true
以下代码段假定日期是字符串。
对于任何一个
Date
对象,都可以跳过
var dx=new Date(String)

var str1=“2020-09-20T16:26:38.000Z”;
var str2=“太阳2020年9月20日00:00:00 GMT-0400(东部夏时制)”;
变量d1=新日期(str1);
var d2=新日期(str2);
console.log(“str1=“+str1”);
console.log(“str2=“+str2”);
console.log(“d1=“+d1”);
console.log(“d2=”+d2);
console.log(“d1.toDateString()==d2.toDateString()是”+(d1.toDateString()==d2.toDateString())

.as控制台包装{max height:100%!important;top:0;}
第一个是ISO日期格式的字符串。第二个是date对象toString方法的输出。我想第二个实际上是一个字符串,或者是一个日期对象日志,因为那个字符串第二个是日期对象为什么
var
而不是
const
?@GirkovArpa,也许你是对的。我不使用
const
let
的主要原因是,有时候在我决定变量是什么之前,当我复制粘贴稍微修改的代码时,开发工具会抱怨。我知道
var
并且我在任何地方都使用它,除了在开发代码的特定部分时,所以我可以看到在开发工具中返回的内容。它使JavaScript保持了预期的松散性。我还不知道(“花式”?)
const
let
。似乎他们限制了它(原因我还没有发现)。到目前为止,我不相信他们不是纯粹的邪恶、毫无意义和专横。