计算传入的任意一时间。计算出这个时间距离现在还有多少天!或者计算过去的时间距离现在已经过去了多少天!

返回值有两种!

1、负值 代表过去了多少天

2、正值 代表距离设定的时间还有多少天

说明:距离设定的莫一天并不包括(设定的那一天),如果需要,计算的结果加1就可以了!

/*格式 getBeforeDate('2015,5,20') */
/*
* auth:120975587@qq.com
* time:2015.5.6 9:45
* ******************
*/
function getBeforeDate(n){
var now = new Date();
var aftertime = new Date(n);
var year = now.getFullYear();
var mon= now.getMonth()+1;
var day= now.getDate();
var year_after = aftertime.getFullYear();
var mon_after = aftertime.getMonth()+1;
var day_after = aftertime.getDate();
var chs = 0;
//获取当月的天数
function DayNumOfMonth(Year,Month)
{
return 32 - new Date(Year,Month-1,32).getDate();
}
if(aftertime.getTime() - now.getTime() < 0){
var temp1 = day_after;
var temp2 = mon_after;
var temp3 = year_after;
day_after = day;
mon_after = mon;
year_after = year;
day = temp1;
mon = temp2;
year = temp3;
}
if(year == year_after){//不跨年
if(mon == mon_after){//不跨年不跨月
chs += day_after-day;
}else{//不跨年跨月
chs += DayNumOfMonth(year,mon)- day+1;//加上第一个不满的
for(var i=1;i< mon_after-mon;i++){
chs += DayNumOfMonth(year,mon+i);
}
chs += day_after-1;//加上
}
}else{//存在跨年
chs += DayNumOfMonth(year,mon)- day+1;//加上开始年份不满的一个月
for(var m=1;m<12-mon;m++){
chs += DayNumOfMonth(year,mon+m);
}
for(var j=1;j < year_after-year;j++){
if((year+j)%400 == 0 || (year+j)%4 == 0 && (year+j)%100 != 0){
chs += 366;
}else{
chs += 365;
}
}
for(var n=1;n <= mon_after;n++){
chs += DayNumOfMonth(year_after,n);
}
chs += day_after-1;
}
if(aftertime.getTime() - now.getTime() < 0){
return -chs;
}else{
return chs;
}
}

以上函数亲测是基本正确!但是测试数据不是很多,如有问题方便留下言,以便校正!谢谢!

js 计算过去和未来的时间距离现在多少天?的更多相关文章

  1. js 计算当年还剩多少时间的倒数计时 javascript 原理解析【复制到编辑器查看推荐】

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. js 计算某年某周日期范围

    <HTML><HEAD><script type="text/javascript"> //目前只判断了4位有效输入的年份,//日期输出格式已处 ...

  3. .net 计算当前时间距离今晚00:00:00还有多少分多少秒

    string dateDiff = null; DateTime DateTime1 = DateTime.Now; //第二天的0点00分00秒 DateTime DateTime2 = DateT ...

  4. C# 计算传入的时间距离今天的时间差

    /// <summary> /// 计算传入的时间距离今天的时间差 /// </summary> /// <param name="dt">&l ...

  5. C# 计算当前时间距离今晚00:00:00还有多少分多少秒

    .net 计算当前时间距离今晚00:00:00还有多少分多少秒 string dateDiff = null;//获取当前时间 DateTime DateTime1 = DateTime.Now; / ...

  6. JS如何设置计算几天前的时间?

    计算多少天前的具体时间.比如今天是9月5日,那7天前正常就是8月29了. 之前曾经直接用时间进行加减,吃了大亏,后来脑残到直接写了一个很复杂的计算闰年,闰月,30.31.28的月份 现在分享一下. f ...

  7. js计算两个时间之间的间隔

    计算时间间隔的方法有很多,这里只是一种方式,可以方法里直接传入两个时间,也可以传入两个字符串格式的时间,在方法里解析一下就ok,这个例子里不传入参数,直接在方法里随便写一个时间来演示一下 fun() ...

  8. 高德地图 API 计算两个城市之间的距离

    1. 目前在项目中,遇到一个需求不会做,就是要计算两个城市之间的距离,而这两个城市的输入是可变的,如果要使用数据库来先存储两地之间的距离,调用的时候再来调用,那么存数据的时候,要哭的,因为光是省级区域 ...

  9. js setInterval每隔一段时间执行一次

    js setInterval每隔一段时间执行一次setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式.setInterval() 方法会不停地调用函数,直到 clearI ...

随机推荐

  1. Android 设计模式Template Method模式

    自定义模板方法模式:定义的算法的骨架中的方法,虽然某些步骤推迟到子类中,下模板方法允许子类不能改变在的情况下,该算法的结构.算法重新定义某些步骤. 设计原则:不要给我们打电话.我会打电话给你.(像猎头 ...

  2. 安卓模拟器错误: Could not open

    在进行android模拟器測试的时候,出现下面错误,进度条满了之后就没反应了.图例如以下: 引起这个问题的可能原因有非常多: 原因一:由于我们採用的是绝对路径定位.也就是说在环境变量里面把路径写死了, ...

  3. 3D空间中的AABB(轴向平行包围盒, Aixe align bounding box)的求法

    引言 在前面的一篇文章中讲述了怎样通过模型的顶点来求的模型的包围球,而且还讲述了基本包围体除了包围球之外,还有AABB包围盒.在这一章,将讲述怎样依据模型的坐标求得它的AABB盒. 表示方法 AABB ...

  4. (一个)AngularJS获取贴纸Hello World

    一旦项目使用JQuery原创javascript,最近参加了一个项目,需要使用AngularJS.RequireJS比较框架,如汰渍.这里写一些博客,记录自己的学习过程,虽然冠以原来的名字,实际上都是 ...

  5. 一Flash从入门开发者放弃了成长之路

    本文将依照入门.成长.转行三个关键词来讲述作者这些年使用Flash进行项目开发的整个历史过程. 一.入门--開始走上Flash的道路. 和Flash的机缘要从大学时代说起.2005年下半年.学校开设了 ...

  6. What is WCF

    几个博客前,都是关于WCF零散的知识.要了解下下面的宏,什么是WCF? WCF:Windows Communication Foundation(WCF)框架. 1.WCF体系框架 2.框架分析 2. ...

  7. 网络编程easy错误点-手知道

    通常的网络编程socket编程.实际上.socket编程并不仅仅是满足网络间不同主机之间的通信,它也能实现同一台主机上不同进程间的通信需求. 其体如今创建socket时的參数的不同: int sock ...

  8. 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)

    在本文中,Android ViewGroup/View流程,及经常使用的自己定义ViewGroup的方法.在此基础上介绍动态控制View的位置的三种方法,并给出最佳的一种方法. 一.ViewGroup ...

  9. javascript中字符串常用方法总结

    字符串是javascript编程中不可或缺的元素,掌握字符串常用的方法也是我们学习过程中的必经之路,下面我们总结一些最常用的的字符串方法. string.charAt(postion) charAt方 ...

  10. Cookie基础

    周末百度笔试,答得题都会,就是不仔细不心细,提前一个小时交卷子,想起来就已经晚了.问了一个cookie的问题,我SB的蒙住了,于是乎,似乎是跪掉了,回来后总结了下Cooke的相关问题.###获取coo ...