前言

项目中需要判断两个日期之间间隔的(月数、周数、天数、),所以在此分享一下

目录

一、 两个时间相差月数

二、 两个时间相差周数

三、 两个时间相差天数

四、 其他


正文

一、 两个时间相差月数

1. 代码

function disMonthF(dateList){let disMonth=0let disYear=dateList[1].getFullYear()-dateList[0].getFullYear();let preDisMonth=disYear*12let endDateMMonth=dateList[1].getMonth();let startDateMMonth=dateList[0].getMonth();if(startDateMMonth<endDateMMonth){disMonth=preDisMonth+(12+endDateMMonth-startDateMMonth);}else{disMonth=preDisMonth+(endDateMMonth-startDateMMonth);}return disMonth;
}
//测试数据,记得创建date 对象
let date0=new Date(1591690485000);
let date1=new Date(1623226485496);
disMonthF([date0,date1]);

2. 运行结果


二、 两个时间相差周数

1. 代码

function disWeekF(dateList) {//这里的date1,date2都是Date对象
var dt1 = dateList[1];
var dt2 = dateList[0];
//向上取整
return Math.ceil(Math.abs(dt1 - dt2) / 1000 / 60 / 60 / 24 / 7);
}
//测试数据,记得创建date 对象
let date0=new Date(1591690485000);
let date1=new Date(1623226485496);
disWeekF([date0,date1]);

2. 运行结果


三、 两个时间相差天数

1. 代码

function disDayF(dateList) {let days=(dateList[1] - dateList[0])/(1*24*60*60*1000);//这里做了向上取整,当然如果你需要的话也可以进行向下取整 即 Math.floor()return Math.ceil(days);
}
//测试数据,记得创建date 对象
let date0=new Date(1591690485000);
let date1=new Date(1623226485496);
disDayF([date0,date1]);

2. 运行结果


四、其他

1. 获取上个年/月/ 的 月/日

有点绕口,获取之前的“ 某个年/月/日,比如你的需求中获取去年的几月份,或者上个月的某号。

var fdate = new Date(),fyears = fdate.getFullYear(),fmoths = fdate.getMonth(),fdate_sgy=new Date(fyears , fmoths-1 , fdate.getDate())//上个月data,fyear_sgy=fdate_sgy.getFullYear()//上个月_年,fmonth_sgy=(fdate_sgy.getMonth()+1)<10?"0"+(fdate_sgy.getMonth()+1) : (fdate_sgy.getMonth()+1)//上个月_月,fday_sgy=fdate_sgy.getDate()<10?"0"+fdate_sgy.getDate() : fdate_sgy.getDate()//上个月_天

2. 获取当年的1月1号

同理,如果要获得当月的1号,就 date.getMonth()+1

function get0101(){var date= new Date(); var year= date.getFullYear();//var month=date.getMonth();//console.log(month+1);  //当月的月份var first0101 = year + '-' + '01' + '-' + '01';return first0101;
}
get0101();

3. 获取当前30天之前的日期

注释中的30 可以改为其他想要的天数

function getOldDate(){//获取当前时间let myDate = new Date();let arr = myDate.toLocaleDateString();//获取三十天前日期let lw = new Date(myDate - 1000 * 60 * 60 * 24 * 30);//最后一个数字30可改,30天的意思let lastY = lw.getFullYear();let lastM = lw.getMonth()+1;let lastD = lw.getDate();let startdate=lastY+"-"+(lastM<10 ? "0" + lastM : lastM)+"-"+(lastD<10 ? "0"+ lastD : lastD);//三十天之前日期return startdate;
}
getOldDate();

很干(货)很干(货)的日期计算 - 日期间隔计算 -(月数、周数、天数)相关推荐

  1. 03【C语言 趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。

    目录 一.指路哦 三.打鱼还是晒网 嘞? 3.1 问题描述 3.2 问题分析 3.3 算法设计 3.4 确定程序框架 3.5 求出指定日期距 1990年1月1日的天数 3.6 完整code 及结果 一 ...

  2. C语言计算日期间隔天数的经典算法解析

    C语言计算日期间隔天数的经典算法解析 网上看到一个计算日期间隔的方法,很高深,很巧妙.代码如下: #include <stdio.h> #include <stdlib.h> ...

  3. vSAN其实很简单-如何榨干vSAN的最后的空间- Part2(转)

    https://mp.weixin.qq.com/s/zFuxJeI0TuX3AM5TSrfEmA 上一篇文章我们聊了如何开启vSAN UNMAP功能用来回收释放的空间,这次我们继续来聊聊剩下两个节省 ...

  4. 寒门再难出贵子(很现实,很残酷,慎入)

    本文是一位银行的HR写的,他工作了10年,接待了一群到银行实习的实习生,然后观察他们发生的一系列的故事.像小说,但比我们看过的小说更精彩:像现实,但比我们了解的现实更残酷.文章来源天涯社区,作者:永乐 ...

  5. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序...

    很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...

  6. 程序员应该选择干前端还是干后端呢?

    程序员应该选择干前端还是干后端呢? 作为一个干了8个月全栈.9个月前端.6个多月后端的程序员,我来说说自己的看法- 一.首先,后端程序员的压力是要比前端程序员大一点的. 在工作中,后端程序员需要经常和 ...

  7. 其实真正的互联网公司是很少的很少

    (1)商品 商品有很多种类型, 比如说文化商品,如新闻.图书.音乐.影视.游戏 比如说服务商品,如机票.酒店.景点门票.租自行车.出租车 比如说实体商品,如京东上卖的那些实体商品 现在拷问大家一下,如 ...

  8. 陈大年:免费很贵创新很累 我如何做WiFi万能钥匙

    陈大年:免费很贵创新很累 我如何做WiFi万能钥匙 责任编辑:editor004 作者:陈大年 |  2016-10-11 11:22:38 本文摘自:创事记 欢迎关注"创事记"的 ...

  9. 阿里的推荐算法竞赛的宣传稿写得很不错,很生动,吸引眼球

    阿里的推荐算法竞赛的宣传稿写得很不错,很生动,吸引眼球.贴在这里,以后可以借鉴 ------------------------------------------------------------ ...

最新文章

  1. 安全转移C盘空间,比如 更改Unity中默认下载在C盘的Package的保存地址
  2. 枚举与常量 java_java – 为什么两个枚举常量可以在同一行中使用?
  3. websocket网络层详解_【技术分享】WebSocket漏洞与防护详解
  4. zookeeper集群介绍
  5. GDI+ 设置不同的分辨率来显示不同大小的图片
  6. R 学习 - 图形设置中英字体
  7. 跟着【莫烦python】学习神经网络框架TensorFlow和Pytorch学习笔记
  8. Java生成、解析二维码方案以及代码实现
  9. 按120分计算成绩 mysql_mySql数据库基础
  10. android手机diy,手把手教你如何DIY个性定制属于你的安卓手机浏览器
  11. 回首过去,抚心自问,是什么“毁了”你的大学生活?
  12. 最简单的计算机原理,【图片】【技术帖】从原子到计算机(计算机原理纯正技术帖,简单且通俗)_计算机吧_百度贴吧...
  13. 路径MTU(PMTU)发现控制与DF位
  14. 解决Vmware下虚拟机下打开gazebo报错:VMware: vmw_ioctl_command error Invalid argument
  15. SpringBoot+Mysql财务在线报销管理系统
  16. python 读取csv文件转成字符串,python实现csv格式文件转为asc格式文件的方法
  17. What’s the value created by bitcoin?
  18. c 语言获取系统时间并打印机,C# 获取打印机当前状态的方法
  19. WinDebug 调试工具-0
  20. 考计算机证书多少钱 二级计算机证培训费用是多少

热门文章

  1. OpenMVS详细安装教程(ubuntu18.04)
  2. centos7从零开始搭建php7.2+nginx+mysql5.7.21
  3. Android源码看设计模式(十)--------关于享元模式的Handler相关分析
  4. 基于STC11F02E 步进电机电路验证程序 (2)
  5. eplan软件生成目录没有图框_eplan软件,自己设计的图框,在使用时是空白,什么原因?...
  6. 新ipad 充电测试软件,你的充电器能喂饱新iPad Pro吗?新iPad Pro充电大对决
  7. 2022-09-20 mysql列存储引擎-问题定位-去除索引逻辑后引发crash
  8. PLC 电 源 小 知 识
  9. 企业信使运营管理平台3.0专业版功能介绍
  10. MyBatis的优点有哪些?