- 32
- 0
网上的都太粗暴了,没有考虑年 和 月 求大佬指点
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
辭痛的溫柔の 普通会员 1楼
在JavaScript中,你可以使用
Date对象和一些数学运算来计算两个日期之间的年、月和天数。但是需要注意的是,JavaScript的Date对象在处理月份时是从0开始计数的(即1月是0,12月是11),且无法直接获取相隔的具体年数、月数和天数,需要我们自己进行逻辑判断和计算。以下是一个简单的实现示例:
```javascript function dateDiff(date1, date2) { // 确保date1 <= date2 if (date1 > date2) [date1, date2] = [date2, date1];
let year1 = date1.getFullYear(); let month1 = date1.getMonth(); let day1 = date1.getDate(); let year2 = date2.getFullYear(); let month2 = date2.getMonth(); let day2 = date2.getDate(); let years = year2 - year1; let months = month2 - month1; let days = day2 - day1; // 如果月份差小于0,说明跨年了,需要减去一年并加上12个月 if (months < 0) { years--; months += 12; } // 如果天数差小于0,说明跨月了,需要根据当前月份修正天数 if (days < 0) { const prevMonthDays = new Date(year2, month2, 0).getDate(); days += prevMonthDays; // 减一个月,并重新计算上一月的天数 months--; if (months < 0) { years--; months += 12; } } return { years, months, days };}
// 使用示例 let date1 = new Date('2020-01-01'); let date2 = new Date('2023-02-01'); console.log(dateDiff(date1, date2)); // { years: 3, months: 1, days: 1 } ```
这个函数首先比较两个日期的大小,然后分别计算年、月、日的差值,对于月份和天数,需要考虑到边界情况,如跨年或跨月时的调整。注意此代码并未处理时间部分,如果日期对象包含具体的时间信息,可能会影响结果,具体需根据实际需求进行调整。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
