js 计算过去和未来的时间距离现在多少天?
计算传入的任意一时间。计算出这个时间距离现在还有多少天!或者计算过去的时间距离现在已经过去了多少天!
返回值有两种!
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 计算过去和未来的时间距离现在多少天?的更多相关文章
- js 计算当年还剩多少时间的倒数计时 javascript 原理解析【复制到编辑器查看推荐】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js 计算某年某周日期范围
<HTML><HEAD><script type="text/javascript"> //目前只判断了4位有效输入的年份,//日期输出格式已处 ...
- .net 计算当前时间距离今晚00:00:00还有多少分多少秒
string dateDiff = null; DateTime DateTime1 = DateTime.Now; //第二天的0点00分00秒 DateTime DateTime2 = DateT ...
- C# 计算传入的时间距离今天的时间差
/// <summary> /// 计算传入的时间距离今天的时间差 /// </summary> /// <param name="dt">&l ...
- C# 计算当前时间距离今晚00:00:00还有多少分多少秒
.net 计算当前时间距离今晚00:00:00还有多少分多少秒 string dateDiff = null;//获取当前时间 DateTime DateTime1 = DateTime.Now; / ...
- JS如何设置计算几天前的时间?
计算多少天前的具体时间.比如今天是9月5日,那7天前正常就是8月29了. 之前曾经直接用时间进行加减,吃了大亏,后来脑残到直接写了一个很复杂的计算闰年,闰月,30.31.28的月份 现在分享一下. f ...
- js计算两个时间之间的间隔
计算时间间隔的方法有很多,这里只是一种方式,可以方法里直接传入两个时间,也可以传入两个字符串格式的时间,在方法里解析一下就ok,这个例子里不传入参数,直接在方法里随便写一个时间来演示一下 fun() ...
- 高德地图 API 计算两个城市之间的距离
1. 目前在项目中,遇到一个需求不会做,就是要计算两个城市之间的距离,而这两个城市的输入是可变的,如果要使用数据库来先存储两地之间的距离,调用的时候再来调用,那么存数据的时候,要哭的,因为光是省级区域 ...
- js setInterval每隔一段时间执行一次
js setInterval每隔一段时间执行一次setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式.setInterval() 方法会不停地调用函数,直到 clearI ...
随机推荐
- android sdk linux 文本 64 位置
android sdk linux 64 之前获得模.现在补上一,然后,小伙伴们下载 版权声明:本文博主原创文章,博客,未经同意不得转载.
- Unity3D根据游戏的发展Terrain Toolkit地形生产
今天我们继续给我Unity3D游戏开发系列.今天我们来通过Terrain Toolkit为了使地形. 虽然Unity3D它为我们提供了一个地形渲染工具,我们发现,这个地形绘制工具并不能满足我们的 ...
- k8s google sample - guestbook
Redis读写分离作为存储 PHP网页作为前端 github地址 https://github.com/kubernetes/kubernetes/blob/release-1.1/examples/ ...
- C++教程之lambda表达式一
什么是Lambda? C++ 11增加了一个很重要的特性--Lambda表达式.营里(戴维营)的兄弟都对Objective-C很熟悉,很多人多block情有独钟,将各种回调函数.代理通通都用它来实现. ...
- Linux/UNIX先进I/O
先进I/O 非阻塞IO 非阻塞I/O因此,我们可以称之为open.read和write这种I/O操作,而这些操作不会永久阻止.我们假设,该操作不能完成,然后调用立即返回一个错误.则表示该操作将继续作为 ...
- ECLIPSE IDEA 调音 1
为自己所用IDE进行jvm优 首先进行日志输出配置 Eclipse 改动eclipse.ini IDEA 改动 idea.exe.vmoptions 添加打印日志的配置參数 -XX:+Print ...
- JavaScript语言核心之词法结构
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.1字符集 JavaScript ...
- HTTPS背后的加密算法(转)
当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信.InfoQ的这篇文章对此有非常详细的描述.这些复杂的步骤的第一步,就是浏览器与服务器之间协商一 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也 ...
- uva10827-Maximum sum on a torus(矩阵最大和的变形)
题目;uva10827-Maximum sum on a torus(矩阵最大和的变形) 题目大意:就是uva108的变形,矩阵能够连通,就是能够从后面连到前面.这里把矩阵复制三遍,然后又一次生成一个 ...