| |
| |
| |
| |
| export const getDiffYmdBetweenDate = (sDate1, sDate2) => { |
| var fixDate = function(sDate) { |
| var aD = sDate.split('-'); |
| for (var i = 0; i < aD.length; i++) { |
| aD[i] = fixZero(parseInt(aD[i])); |
| } |
| return aD.join('-'); |
| }; |
| var fixZero = function(n) { |
| return n < 10 ? '0' + n : n; |
| }; |
| var fixInt = function(a) { |
| for (var i = 0; i < a.length; i++) { |
| a[i] = parseInt(a[i]); |
| } |
| return a; |
| }; |
| var getMonthDays = function(y, m) { |
| var aMonthDays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; |
| if ((y % 400 == 0) || (y % 4 == 0 && y % 100 != 0)) { |
| aMonthDays[2] = 29; |
| } |
| return aMonthDays[m]; |
| }; |
| var checkDate = function(sDate) {}; |
| var y = 0; |
| var m = 0; |
| var d = 0; |
| var sTmp; |
| var aTmp; |
| sDate1 = fixDate(sDate1); |
| sDate2 = fixDate(sDate2); |
| if (sDate1 > sDate2) { |
| sTmp = sDate2; |
| sDate2 = sDate1; |
| sDate1 = sTmp; |
| } |
| var aDate1 = sDate1.split('-'); |
| aDate1 = fixInt(aDate1); |
| var aDate2 = sDate2.split('-'); |
| aDate2 = fixInt(aDate2); |
| y = aDate2[0] - aDate1[0]; |
| if (sDate2.replace(aDate2[0], '') < sDate1.replace(aDate1[0], '')) { |
| y = y - 1; |
| } |
| |
| aTmp = [aDate1[0] + y, aDate1[1], fixZero(aDate1[2])]; |
| while (true) { |
| if (aTmp[1] == 12) { |
| aTmp[0]++; |
| aTmp[1] = 1; |
| } else { |
| aTmp[1]++; |
| } |
| if (([aTmp[0], fixZero(aTmp[1]), aTmp[2]]).join('-') <= sDate2) { |
| m++; |
| } else { |
| break; |
| } |
| } |
| |
| aTmp = [aDate1[0] + y, aDate1[1] + m, aDate1[2]]; |
| if (aTmp[1] > 12) { |
| aTmp[0]++; |
| aTmp[1] -= 12; |
| } |
| while (true) { |
| if (aTmp[2] == getMonthDays(aTmp[0], aTmp[1])) { |
| if (aTmp[1] == 12) { |
| aTmp[0]++; |
| aTmp[1] = 1; |
| aTmp[2] = 1; |
| } else { |
| aTmp[1]++; |
| aTmp[2] = 1; |
| } |
| } else { |
| aTmp[2]++; |
| } |
| sTmp = ([aTmp[0], fixZero(aTmp[1]), fixZero(aTmp[2])]).join('-'); |
| if (sTmp <= sDate2) { |
| d++; |
| } else { |
| break; |
| } |
| } |
| |
| |
| if(y == 0){ |
| if(m == 0){ |
| if(d == 0){ |
| return '就是今天'; |
| }else{ |
| return d + '天'; |
| } |
| }else{ |
| if(d == 0){ |
| return '刚好' + m + '个月'; |
| }else{ |
| return m + '个月' + d + '天'; |
| } |
| } |
| }else{ |
| if(m == 0){ |
| if(d == 0){ |
| return '刚好' + y + '年'; |
| }else{ |
| return y + '年' + d + '天'; |
| } |
| }else{ |
| if(d == 0){ |
| return '刚好' + y + '年' + m + '个月'; |
| }else{ |
| return y + '年' + m + '个月' + d + '天'; |
| } |
| } |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具