首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

js中判断两个日期差值如何做

2012-02-08 
js中判断两个日期差值怎么做?我有一个js方法function f1(date1,date2){}date1和date2是两个字符型的变量,

js中判断两个日期差值怎么做?
我有一个js方法
function f1(date1,date2){

}
date1和date2是两个字符型的变量,比如他们的值是'2010-01-01'和'2010-04-28'
现在我想这个js中算出这两个日期的差值,返回结果是两个日期差值的天数.怎么做?

[解决办法]
转成毫秒 在算
简单
[解决办法]
var data1="2010-01-01";
var data2="2010-04-28"
var a[3]=data1.split("-");
var b[3]=data2.split("-");
if(b[0]==a[0]){
if(b[1]==a[1]){
if(b[2]==a[2]){
alert(两个日期相同!);
}
}
}
else .....

年乘以365*24*3600转换成秒,月和日也是类似。。。
然后减掉之后的差值再换算回来,最后得出结果!
[解决办法]
var start = new Date(2010,1,1);
var end = new Date(2010,4,28);
alert(parseInt((end-start) / (1000 * 60 * 60 * 24)));
如果是负值,表示end比start小
[解决办法]
//格式化时间
Date.prototype.format = function(format) //author: meizz
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}

//判断发生时间要大于出生日期
function checkHappentimeBigBir(name,obj)
{
var birth=document.getElementById("DCsrq").innerHTML;
if(birth==""){
return true;
}
ymd1=birth.split("-");
month1=ymd1[1]-1;
var Date1 = new Date(ymd1[0],month1,ymd1[2]); 
if(obj.value=="")
{
return true;
}
ymd2=obj.value.split("-");
month2=ymd2[1]-1;
var Date2 = new Date(ymd2[0],month2,ymd2[2]);
if(Date1.format('yyyy-MM-dd')>Date2.format('yyyy-MM-dd')){
alert(name+"不能小于出生时间!");
obj.value="";
obj.focus();
return false; 
}
}

这是我用的一段代码,可以参考下
[解决办法]
两个 JS 日期可以直接减的。
[解决办法]

探讨
我有一个js方法
function f1(date1,date2){

}
date1和date2是两个字符型的变量,比如他们的值是'2010-01-01'和'2010-04-28'
现在我想这个js中算出这两个日期的差值,返回结果是两个日期差值的天数.怎么做?

[解决办法]
探讨
问题的关键在于如何将一个字符型的date1和date2转换成js中的Date对象

[解决办法]
说的很清楚了

减下来的是毫秒,除以1000 ,得到秒

然后在 乘以 60*60*24 就是天了
[解决办法]
年乘以365*24*3600转换成秒,月和日也是一样的,如果你不怕麻烦那就简单点的,判断年是否瑞年,然后在判断月和日,进行运算就可以看了,这样简单吧,
[解决办法]
怎么都写的那么复杂
探讨
var start = new Date(2010,1,1);


var end = new Date(2010,4,28);
alert(parseInt((end-start) / (1000 * 60 * 60 * 24)));
如果是负值,表示end比start小


[解决办法]
var startDate=document.getElementById('startDate').value;
var endDate=document.getElementById('endDate').value; 

if(new Date(startDate.replace(/-/g,"\/")) >= 
new Date(endDate.replace(/-/g,"\/"))){//验证大小
alert("开始时间要小于结束时间");
return false;
}
[解决办法]
直接相减就是天。没有错。
[解决办法]
晕 LZ说的是构造日期的时候吗?不用拆,但你'2010-04-28'这样的格式不行,要"月-日-年"的格式才行,
var endDate = Date.parse("4-28-2010");
如果在构造日期之前转换不用我说了吧!
[解决办法]
JScript code
var a = new Date();        a = a.valueOf();        a = a + dadd * 24 * 60 * 60 * 1000;        a = new Date(a);
[解决办法]
Date#getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

热点排行