Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中执行部分日期比较,忽略年份?_Javascript_Date_Object_Comparison_Partial - Fatal编程技术网

如何在javascript中执行部分日期比较,忽略年份?

如何在javascript中执行部分日期比较,忽略年份?,javascript,date,object,comparison,partial,Javascript,Date,Object,Comparison,Partial,正如标题所说,我想编写一些基本代码,检查给定JavaScriptDate对象的月份和日期是否在某个范围内。我知道要比较常规日期,可以做以下几点 date1date3 但是一个人怎么能只访问月份和日期呢?我知道Date对象可以同时返回它的月份和日期,但我真的很困惑,如何才能只比较它们。您可以从日期中提取一个可比较的“键”(例如月*100+天),并将这些键作为数字进行比较: 函数compareByMD(日期1、日期2){ 设a=date1.getMonth()*100+date1.getDate

正如标题所说,我想编写一些基本代码,检查给定JavaScript
Date
对象的月份和日期是否在某个范围内。我知道要比较常规日期,可以做以下几点

date1date3

但是一个人怎么能只访问月份和日期呢?我知道
Date
对象可以同时返回它的月份和日期,但我真的很困惑,如何才能只比较它们。

您可以从日期中提取一个可比较的“键”(例如
月*100+天
),并将这些键作为数字进行比较:

函数compareByMD(日期1、日期2){
设a=date1.getMonth()*100+date1.getDate();
设b=date2.getMonth()*100+date2.getDate();
返回(a>b)-(a)
您可以复制其中一个日期并将其年份更改为另一个日期的年份,这样您就可以使用示例中的比较方法。@Titus从2016-02-29开始,将年份设置为2019年,可能会产生意外的结果…;-)似乎是我感到舒服的适当数量的刻薄;谢谢你的建议!您可以添加一个解释,说明为什么
返回a-b
是不够的。在我看来,
(a-b)-(b-a)
=>
a-b-b+a
=>
2a-2b
=>
2(a-b)
。所以我想知道为什么这里2是一个神奇的数字。我仍然不明白为什么最后一行不是
返回a-b