JS日期相减得到天数
废话不多说直奔主题,解决思路核心是时间戳相减
灵感来自于我经常用到一个工具方法:格式化时间,也是用时间戳
function GetNumberOfDays(date1,date2){//获得天数 //date1:开始日期,date2结束日期 var a1 = Date.parse(new Date(date1)); var a2 = Date.parse(new Date(date2)); var day = parseInt((a2-a1)/ (1000 * 60 * 60 * 24));//核心:时间戳相减,然后除以天数 return day }; var a1="12-19-2018"; var a2="2019/1/7"; var b=GetNumberOfDays(a1,a2) console.log(b);
格式化时间是以前百度回来的,现在顺便拿出来给大家看看借花献佛:
/* 该方法有效防止后台传数据格式发生变化例如:10-19-2017《==》2017/10/19 思路:后台的时间日期==》时间戳==》标准的时间日期 y=年,m=月,d=天,h=时,u=分,s=秒 */ //标准日期时间 function DateFormat(dateTime){//格式化时间 var dateParse = Date.parse(new Date(dateTime));//转成时间戳 var time = new Date(dateParse);//再转成标准时间 var y = String(time.getFullYear()); var m = String(time.getMonth()+1); var d = String(time.getDate()); var h = String(time.getHours()); var u = String(time.getMinutes()); var s = String(time.getSeconds()); return {y,m,d,h,u,s} //return m+"/"+d//直接输入自己想要的格式 } var a="2017/12/31 23:12:54"; console.log(DateFormat(a));
根据当天获取某一天(分享点自己收藏的干货):
function GetDay(day){ function doHandleMonth(month){ var m = month; if(month.toString().length == 1){ m = "0" + month; } return m; }; var today = new Date(); var targetday_milliseconds=today.getTime() + 1000*60*60*24*day; today.setTime(targetday_milliseconds); //注意,这行是关键代码 var tYear = today.getFullYear(); var tMonth = today.getMonth(); var tDate = today.getDate(); tMonth = doHandleMonth(tMonth + 1); tDate = doHandleMonth(tDate); return tYear+"-"+tMonth+"-"+tDate; }; console.log(getDay(0))//当天 console.log(getDay(-7))//7天前 console.log(getDay(7))//7天后
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!