废话不多说直奔主题,解决思路核心是时间戳相减
 灵感来自于我经常用到一个工具方法:格式化时间,也是用时间戳

  1. function GetNumberOfDays(date1,date2){//获得天数
  2. //date1:开始日期,date2结束日期
  3. var a1 = Date.parse(new Date(date1));
  4. var a2 = Date.parse(new Date(date2));
  5. var day = parseInt((a2-a1)/ (1000 * 60 * 60 * 24));//核心:时间戳相减,然后除以天数
  6. return day
  7. };
  8.  
  9. var a1="12-19-2018";
  10. var a2="2019/1/7";
  11. var b=GetNumberOfDays(a1,a2)
  12. console.log(b);

格式化时间是以前百度回来的,现在顺便拿出来给大家看看借花献佛:

  1. /*
  2. 该方法有效防止后台传数据格式发生变化例如:10-19-2017《==》2017/10/19
  3. 思路:后台的时间日期==》时间戳==》标准的时间日期
  4. y=年,m=月,d=天,h=时,u=分,s=秒
  5. */
  6. //标准日期时间
  7. function DateFormat(dateTime){//格式化时间
  8. var dateParse = Date.parse(new Date(dateTime));//转成时间戳
  9. var time = new Date(dateParse);//再转成标准时间
  10. var y = String(time.getFullYear());
  11. var m = String(time.getMonth()+1);
  12. var d = String(time.getDate());
  13. var h = String(time.getHours());
  14. var u = String(time.getMinutes());
  15. var s = String(time.getSeconds());
  16. return {y,m,d,h,u,s}
  17. //return m+"/"+d//直接输入自己想要的格式
  18. }
  19. var a="2017/12/31 23:12:54";
  20. console.log(DateFormat(a));

根据当天获取某一天(分享点自己收藏的干货):

  1. function GetDay(day){
  2. function doHandleMonth(month){
  3.   var m = month;
  4.   if(month.toString().length == 1){
  5.     m = "0" + month;
  6.   }
  7.   return m;
  8. };
  9. var today = new Date();
  10. var targetday_milliseconds=today.getTime() + 1000*60*60*24*day;
  11. today.setTime(targetday_milliseconds); //注意,这行是关键代码
  12. var tYear = today.getFullYear();
  13. var tMonth = today.getMonth();
  14. var tDate = today.getDate();
  15. tMonth = doHandleMonth(tMonth + 1);
  16. tDate = doHandleMonth(tDate);
  17. return tYear+"-"+tMonth+"-"+tDate;
  18. };
  19. console.log(getDay(0))//当天
  20. console.log(getDay(-7))//7天前
  21. console.log(getDay(7))//7天后

JS日期相减得到天数的更多相关文章

  1. JS日期加减指定天数

    JS中没有直接操作日期加减的方法,只能通过Date对象获取当前天数加减之后setDate,以此来达到操作日期的目的 JS中对指定日期加减指定天数,具体方法如下: function addDate(da ...

  2. java得到日期相减的天数

    /** * <li>功能描述:时间相减得到天数 * @param beginDateStr * @param endDateStr * @return * long * @author A ...

  3. My97DaePicker 用js实现文本框日期相减求天数

    <tr>                <td align="center" style="background-color: #cccccc;font ...

  4. JS 计算日期相减得天数

    言简意赅不呼哨直接懂,可以封装的可以根据自己的需求封装一下 var date1="2020-10-23";var date2="2020-10-26";var ...

  5. js日期相减得到分钟数

    const date1 = new Date(fieldsValue.examStartTime); const date2 = new Date(fieldsValue.examEndTime); ...

  6. MySQL (时间)日期相减取天数

    select TO_DAYS(str_to_date('12/1/2001 12:00:00 AM','%m/%d/%Y')) -TO_DAYS(str_to_date('11/28/2001 12: ...

  7. 关于js的当前日期的格式化,和两个日期之间的相减的天数

    function getFormatYMD(timesamp){ var date = new Date(timesamp); Y = date.getFullYear() + '-'; M = (d ...

  8. JS两日期相减

    JS两日期相减,主要用到下面两个方法 dateObject.setFullYear(year,month,day) 方法 stringObject.split(separator) 方法 functi ...

  9. C#-和时间有关的计算代码、时间相减 得到天数、小时、分钟、秒差

    asp.net(C#)时间相减 得到天数.小时.分钟.秒差   asp.net(C#)时间相减 得到天数.小时.分钟.秒差   DateTime dtone = Convert.ToDateTime( ...

随机推荐

  1. eclipse创建scrapy项目

    1. 您必须创建一个新的Scrapy项目. 进入您打算存储代码的目录中(比如否F:/demo),运行下列命令: scrapy startproject tutorial 2.在eclipse中创建一个 ...

  2. Servlet获取 URL 地址

    使用 ServletRequest 的如下方法 getContextPath 取得项目名 getServletPath 取得Servlet名 getPathInfo 取得Servlet后的URL名,不 ...

  3. 人力资源项目中 add_account.php

    add_account.php ( 文件浏览 ) <?phpinclude('db_con.php');   if(isset($_POST['save'])) {    $employee_i ...

  4. day32 进程

    上午: # 1 开启子进程 #target #args # if __name__ == '__main__' #start() # 2.其它的方法: #方法: #terminate() #is_al ...

  5. HDU 4609 3-idiots (组合数学 + FFT)

    题意:给定 n 条边,问随机选出 3 条边,能组成三角形的概率是多少. 析:答案很明显就是  能组成三角形的种数 / (C(n, 3)).现在的问题是怎么求能组成三角形的种数. 这个博客说的非常清楚了 ...

  6. CentOS 6下升级Python版本

    CentOS6.8默认的python版本是2.6,而现在好多python组件开始只支持2.7以上的版本,比如说我今天遇到的pip install pysqlite,升级python版本是一个痛苦但又常 ...

  7. 5随机到7随机的C++实现

    一.5随机到7随机 //给定条件 int Rand1To5(){ + ; } //实现代码,使用插空法和筛的过程 int Rand1To7(){ ; do{ tmp = (Rand1To5() - ) ...

  8. 没有job offer,拿加拿大工签PGWP回国如何续签加拿大小签?

     很多同学因为在加拿大毕业后申请了三年的工作签证PGWP之后匆匆回国,没有来得及续签小签,但是回国一段时间之后又想要回加拿大,想要用自己的三年工签来续自己的小签.拿了加拿大PGWP没有job offe ...

  9. 两台Linux机器传送文件

    https://www.cnblogs.com/lianrenjujishou/p/5458206.html

  10. Linux基础操作命令

    一.系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 – (SMBIO ...