JS判断两个日期是否属于同一周

it2023-12-28  82

此算法思路把两个日期均转换到周一,比较转换后的两日期是否相同。

算法中完整周的定义是:周一到周日,即周一为第一天

首先是转换方法,转换日期到周一,因为JS规定周日为完整周的第一天,所以需单独判断week=0:

function tmonday(dtm){ let dte = new Date(dtm); let day = dte.getDay(); let dty = dte.getDate(); if(day===0){ day=7; } dte.setDate(dty-day+1); return dte.getFullYear()+'-'+dte.getMonth()+'-'+dte.getDate(); }

下边是实际使用调用方法,方法需要传入日期的毫秒值:

function iSameWeek(date1,date2){ let dt1 = new Date(); dt1.setTime(date1); let dt2 = new Date(); dt2.setTime(date2); let md1 = tmonday(dt1); let md2 = tmonday(dt2); return md1===md2; }

调用示例:

new Date(2020,9,6,0,0,0,0).getTime()=1601913600000;//2020年10月6日

new Date(2020,8,29,0,0,0,0).getTime()=1601308800000;2020年9月29日

iSameWeek(1601913600000,1601308800000)

=false

最新回复(0)