js怎么根据一个日期得到它旁边几天的日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js怎么根据一个日期得到它旁边几天的日期相关的知识,希望对你有一定的参考价值。

格式是这种 :2014-05-01

就是日期做差,如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>日期计算器</title>
<script type="text/javascript">
var hzWeek= new Array("日","一","二","三","四","五","六","日");
function cweekday(wday)return hzWeek[wday];

function cala()
y=document.getElementById("SY").value;
m=document.getElementById("SM").value;
d=document.getElementById("SD").value;
ddd=document.getElementById("decday").value;

ttt=new Date(y,m-1,d).getTime()+ddd*24000*3600;

theday=new Date();
theday.setTime(ttt);

document.getElementById("result1").innerHTML=theday.getFullYear()+"年"+(1+theday.getMonth())+"月"+theday.getDate()+"日"+"星期"+cweekday(theday.getDay());
//cala
function calb()
y2=document.getElementById("SY2").value;
m2=document.getElementById("SM2").value;
d2=document.getElementById("SD2").value;

y3=document.getElementById("SY3").value;
m3=document.getElementById("SM3").value;
d3=document.getElementById("SD3").value;

day2=new Date(y2,m2-1,d2);
day3=new Date(y3,m3-1,d3);

document.getElementById("result2").innerHTML=(day3-day2)/86400000;
//calb

function autoInput()
var d = new Date();
var vYear = d.getFullYear();
var vMon = d.getMonth() + 1;
var vDay = d.getDate();

var output="今天是:";
output+=vYear+"-"+(vMon<10?"0"+vMon:vMon)+"-"+(vDay<10?"0"+vDay:vDay);
document.getElementById('today').innerHTML=output;
document.getElementById('SY').value=vYear;
document.getElementById('SM').value=vMon;
document.getElementById('SD').value=vDay;
document.getElementById('SY2').value=vYear;
document.getElementById('SM2').value=vMon;
document.getElementById('SD2').value=vDay;

</script>
</head>

<body onload="autoInput()">
<h4 id="today"></h4>
<h4>1.推算几天后的日期:</h4>
<br>
 和
<input size="8" id="SY" value="">年
<input size="4" id="SM" value="6">月
<input size="4" id="SD" value="2">日
(缺省为今天)
<br>相差
<input size="8" id="decday" value="100">天
(输入负数则往前计算)
<br>是:
<span id="result1"></span>
<br>
<input type="button" value="计算1" onclick="cala()">

<br><br>



<h4>2.计算日期差:</h4>
<br>

<input size="8" id="SY2" value="">年
<input size="4" id="SM2" value="">月
<input size="4" id="SD2" value="">日

<br>

<input size="8" id="SY3"  value="2015" >年
<input size="4" id="SM3" value="1">月
<input size="4" id="SD3" value="1">日
<br>相差:
<span id="result2"></span>天
<br>
<input type="button" value="计算2" onclick="calb()">

</body>
</html>

参考技术A

这个可以用js里的Date函数。

函数需要传递2个参数。第一个时间,第二个是附近的多少天。
利用循环和Date函数将日期全部push到数组中,最后返回数组。

如下代码仅进行了简单的实现,仅供参考:

function tab(date,dNum)
var arr = date.split('-');
var fDay = [];
for(var i=(parseInt(arr[2])-dNum);i<=(parseInt(arr[2])+dNum);i++)
fDay.push(new Date(arr[0],arr[1]-1,i));

return fDay;

alert(tab('2015-1-1',4));

参考技术B var getDate = function(date, i)
    var d = date.split(/-/);
    var y = parseInt(d[0]);
    var m = parseInt(d[1]);
    var t = parseInt(d[2]) + i;
    var dt = new Date(y, m, t);
    return dt;


getDate("2014-05-01", 1);// 后1天

追问

那假如我要根据2014-05-01 来得到它前一天:2014-4-30呢

追答

getDate("2014-05-01", -1);//

var getDate = function(date, i)
var d = date.split(/-/);
var y = parseInt(d[0]);
var m = parseInt(d[1]) -1;// 月份从0开始
var t = parseInt(d[2]) + i;
var dt = new Date(y, m, t);
return dt;


getDate("2014-05-01", 1);// 后1天

参考技术C new Date().getDate() 就获取了当前多少号了。 直接加减就可以了。。。

js 怎么求两个日期相差几个月零几天?

参考技术A 日期:date1、date2
date1.getMonth() //得到当前日期的月份值-1
date2.getMonth() //得到当前日期的月份值-1
date1.getDate() //得到当前日期在所在月份的第几天
date2.getDate() //得到当前日期在所在月份的第几天
lastday = new Date(date1.getFullYear(), date1.getMonth() , 0).getDate(),//下个月的第0天就是今月的最后一天

相差几个月零几天这个问题不好算啊,按一个月几天算呢?每个月都不一样的。

两个日期之间相差有多少天:(date1-date2)/(1000*3600*24)本回答被提问者采纳

以上是关于js怎么根据一个日期得到它旁边几天的日期的主要内容,如果未能解决你的问题,请参考以下文章

java怎么得到某个月的第一天和最后一天的日期,以2012-06为例

js获取前几天或者后几天的日期

js获取当前指定的前几天的日期(如当前时间的前七天的日期)

mysql怎么得到时间段每一天,不用表,就是得到一个时间段的每一天的日期

js获取前几天的时间及时间区间

距离日期还有几天的 Android Toast