求javascript中两个日期的差等于多少天的功能,谢谢!

WNASP 2004-10-12 02:39:05
求javascript中两个日期的差等于多少天的功能,谢谢!
...全文
245 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnblackhawk 2004-10-20
  • 打赏
  • 举报
回复
ding
yjbnew 2004-10-15
  • 打赏
  • 举报
回复
如果是VBSCRIIPT就太好办了。
BILLSJONE 2004-10-15
  • 打赏
  • 举报
回复
up
风斧 2004-10-14
  • 打赏
  • 举报
回复
function dateDiff(date1,date2)//第一个参数为日期型,第二个为日期型,返回整型
{
diff=parseInt(Date.parse(date1))-parseInt(Date.parse(date2))
diffDay=round(diff/1000/60/60/24-0.5);
return diffDay;
}
风斧 2004-10-14
  • 打赏
  • 举报
回复
function dateAdd(date1,intMs)//第一个参数为日期型,第二个为整型,要加的毫秒数,需要转
{
ms=parseInt(Date.parse(date1));
ms=ms+intMs;
date1 = new Date(ms);
return date1;
}
进攻参考
风斧 2004-10-14
  • 打赏
  • 举报
回复
不错,
是是非非 2004-10-14
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
//计算两个日期的差,跟VB里的DateDiff差不多
function dateDiff(sopn,nDate,eDate){
var msDiff=Date.parse(eDate)-Date.parse(nDate);
switch(sopn){
case 'ms':return msDiff; //毫秒,好像只能精确到秒,1000以下的都被忽略了
case 'se':return parseInt(msDiff/1000); //秒
case 'mi':return parseInt(msDiff/1000/60); //分钟
case 'hr':return parseInt(msDiff/1000/60/60); //小时
case 'dy':return parseInt(msDiff/1000/60/60/24); //天
case 'mn':return parseInt((eDate.getFullYear()-nDate.getFullYear())*12+eDate.getMonth()-nDate.getMonth()); //月
case 'yr':return eDate.getFullYear()-nDate.getFullYear(); //年
}
}
//给一个日期加上多少得到另外一个日期
function dateAdd(sopn,ival,sDate){
var rDate;
var lngDate=Date.parse(sDate);
switch(sopn){
case 'ms': //毫秒,只能精确到秒,1000以下的都被忽略了
rDate=new Date(lngDate+ival);
return rDate;
case 'se': //秒
rDate=new Date(lngDate+ival*1000);
return rDate;
case 'mi': //分钟
rDate=new Date(lngDate+ival*1000*60);
return rDate;
case 'hr': //小时
rDate=new Date(lngDate+ival*1000*60*60);
return rDate;
case 'dy': //天
rDate=new Date(lngDate+ival*1000*60*60*24);
return rDate;
//月不知道该怎么算了 2004-3-31减去一个月该得到2004-2-29还是2004-2-1还是2004-1-30?
//年就不用说了把?直接把年份加上去就可以了
}
}
var dt1=new Date(1999,10,5);
var dt2=new Date();
alert(dateDiff('ms',dt2,dateAdd('ms',11200,dt2)));
-->
</script>
gnodiew 2004-10-14
  • 打赏
  • 举报
回复
function DateDiff(dayfrom,dayto)
{
var y,m,d,days_diff=0;
y=dayfrom.substring(0,4);
m=dayfrom.substring(5,7);
d=dayfrom.substring(8,10);
var check_from=new Date(y,m-1,d);
y=dayto.substring(0,4);
m=dayto.substring(5,7);
d=dayto.substring(8,10);
var check_to=new Date(y,m-1,d);
var days_diff=(check_to.valueOf()-check_from.valueOf())/86400000;

return days_diff;
}
传入的日期格式通常各种各样,所以中间有一段取得年月日的地方,你可以根据你的实际情况改一下
当前格式yyyy-mm-dd

var days=DateDiff('2004-01-02','2004-01-04');
alert(days);//2
风斧 2004-10-14
  • 打赏
  • 举报
回复
以上得到的有可能是小数,需要取整。js好像没有整除运算符。只好自己再处理了。
dataDiff=parseInt(parse(date1))-parseInt(parse(date2))//得到了日期差的毫秒数。
dateDiff=round(dateDiff/1000/60/60/24-0.5)//即使2.9天也算2天,所以要把它变成2.4
//如果本来是2.3,减0.5后是1.8,round后仍然是2天。
风斧 2004-10-14
  • 打赏
  • 举报
回复
后者脸皮写玩吧。
dateDiff=dateDiff/1000/60/60/24
风斧 2004-10-14
  • 打赏
  • 举报
回复
这个贴子,已经号几天了,我一直在关注。楼上大虾介绍了几个很有用的函数,但好像不能解决楼主的问题.
js难道不能计算日期相减吗?我不知道,期待大虾。
我有一个笨方法,
date类型数据有一个parse方法,能够得到该日期距起点(1970 年 1 月 1 日)的毫秒数。
那么两个日期型parse以后再相减就得到了两个日期之间的毫秒数。再变换。
dataDiff=parseInt(parse(date1))-parseInt(parse(date2))//得到了日期差的毫秒数。
赫赫,我都不好意思写下去了。
WNASP 2004-10-13
  • 打赏
  • 举报
回复
自己帮自己顶
WNASP 2004-10-13
  • 打赏
  • 举报
回复
自己帮自己顶
guoweidong 2004-10-12
  • 打赏
  • 举报
回复
//函数名:fucPWDchk
//功能介绍:检查是否含有非数字或字母
//参数说明:要检查的字符串
//返回值:0:含有 1:全部为数字或字母
function fucPWDchk(str)
{
var strSource ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var ch;
var i;
var temp;

for (i=0;i<=(str.length-1);i++)
{

ch = str.charAt(i);
temp = strSource.indexOf(ch);
if (temp==-1)
{
return 0;
}
}
if (strSource.indexOf(ch)==-1)
{
return 0;
}
else
{
return 1;
}
}

function jtrim(str)
{ while (str.charAt(0)==" ")
{str=str.substr(1);}
while (str.charAt(str.length-1)==" ")
{str=str.substr(0,str.length-1);}
return(str);
}


//函数名:fucCheckNUM
//功能介绍:检查是否为数字
//参数说明:要检查的数字
//返回值:1为是数字,0为不是数字
function fucCheckNUM(NUM)
{
var i,j,strTemp;
strTemp="0123456789";
if ( NUM.length== 0)
return 0
for (i=0;i<NUM.length;i++)
{
j=strTemp.indexOf(NUM.charAt(i));
if (j==-1)
{
//说明有字符不是数字
return 0;
}
}
//说明是数字
return 1;
}

//函数名:fucCheckTEL
//功能介绍:检查是否为电话号码
//参数说明:要检查的字符串
//返回值:1为是合法,0为不合法
function fucCheckTEL(TEL)
{
var i,j,strTemp;
strTemp="0123456789-()# ";
for (i=0;i<TEL.length;i++)
{
j=strTemp.indexOf(TEL.charAt(i));
if (j==-1)
{
//说明有字符不合法
return 0;
}
}
//说明合法
return 1;
}

//函数名:fucCheckLength
//功能介绍:检查字符串的长度
//参数说明:要检查的字符串
//返回值:长度值
function fucCheckLength(strTemp)
{
var i,sum;
sum=0;
for(i=0;i<strTemp.length;i++)
{
if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
sum=sum+1;
else
sum=sum+2;
}
return sum;
}
//函数名:getFileSize
//功能介绍:取到文件的大小
//参数说明:文件路径
//返回值:文件大小:是 文件不存在:不是
function getFileSize(filePath)
{
var path = filePath;
var filesize = "";
var fso = new ActiveXObject("Scripting.FileSystemObject");
if ( fso.FileExists(path))
{
var file= fso.GetFile(path);
filesize = parseInt(file.size /1024) +"K";
}else
{
filesize = "文件不存在!";
}
}
//函数名:homepage
//功能介绍:设当前页为主页
//参数说明:URL
function homepage(URL)
{
this.style.behavior="url(#default#homepage)";
this.setHomePage(URL);
}

//函数名:jionsouc
//功能介绍:加入收藏夹
//参数说明:URL,网站描述
function jionsouc(URL,display)
{
window.external.addFavorite(URL,display)
}
//函数名:FilterType
//功能介绍:筛选后缀不为bmp,jpg,gif的上传文件
//参数为当然上传组件的对象.
function FilterType(obj)
{
//文件名,取得文件的扩展名
var reg=/([^.]+)$/.exec(obj.value);
sType = RegExp.$1;
if(!/(jpg|gif|bmp)$/ig.test(sType))
{
alert("请选择bmp,jpg,gif文件!");
obj.select();
document.execCommand("delete");
}
}

//函数名:doZoom
//功能介绍:改变页面中的字体.如文章字体的大小.
//参数ID取到页面的ID名称,size为字体大小
function doZoom(ID,size)
{
document.getElementById(ID).style.fontSize=size+"px"
}

//函数名:isEmail
//功能介绍:验证页面输入的值是否为email格式的.
//参数: 参数为输入的字符串
function isEmail(string)
{
if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]

+$/) != -1)
return true;
else
return false;
}

//函数名:round
//功能介绍:四舍五入的函数.
//参数: V为取到的数字,P为小数点后面的位数.
function round(v,p){
var tempInt,tempDot,temp,Power,xxrl
temp = v;
Power = 1;
for(var i=0;i<p;i++){
Power = Power * 10;
}
tempInt=parseInt(temp*Power);
tempDot=v*Power-tempInt;
if(tempDot>=0.499){
tempInt=tempInt+1;
}
xxrl = parseFloat(tempInt/Power,4);
}

</script>
guoweidong 2004-10-12
  • 打赏
  • 举报
回复
关键字 javascript,数据检测 //函数名:chksafe//功能介绍:检查是否含有"'",'\\',"/"//参数说明:要检查的字符串//返回值:0:是 1:不是function chksafe(a){ return 1;/* fibdn = new Array ("'" ,"\\", "、", ",", ";", "/"); i=fibdn.length; j=a.length; for (ii=0;ii<i;ii++) { for (jj=0;jj<j;jj++) { temp1=a.charAt(jj); temp2=fibdn[ii]; if (tem';p1==temp2) { return 0; } } } return 1;*/ }
//函数名:chkspc
//功能介绍:检查是否含有空格
//参数说明:要检查的字符串
//返回值:0:是 1:不是
function chkspc(a)
{
var i=a.length;
var j = 0;
var k = 0;
while (k<i)
{
if (a.charAt(k) != " ")
j = j+1;
k = k+1;
}
if (j==0)
{
return 0;
}

if (i!=j)
{ return 2; }
else
{
return 1;
}
}


//函数名:chkemail
//功能介绍:检查是否为Email Address
//参数说明:要检查的字符串
//返回值:0:不是 1:是
function chkemail(a)
{ var i=a.length;
var temp = a.indexOf('@');
var tempd = a.indexOf('.');
if (temp > 1) {
if ((i-temp) > 3){

if ((i-tempd)>0){
return 1;
}

}
}
return 0;
}

//opt1 小数 opt2 负数
//当opt2为1时检查num是否是负数
//当opt1为1时检查num是否是小数
//返回1是正确的,0是错误的
function chknbr(num,opt1,opt2)
{
var i=num.length;
var staus;
//staus用于记录.的个数
status=0;
if ((opt2!=1) && (num.charAt(0)=='-'))
{
//alert("You have enter a invalid number.");
return 0;

}
//当最后一位为.时出错
if (num.charAt(i-1)=='.')
{
//alert("You have enter a invalid number.");
return 0;
}

for (j=0;j<i;j++)
{
if (num.charAt(j)=='.')
{
status++;
}
if (status>1)
{
//alert("You have enter a invalid number.");
return 0;
}
if (num.charAt(j)<'0' || num.charAt(j)>'9' )
{
if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0))
{
//alert("You have enter a invalid number.");
return 0;
}
}
}
return 1;
}

//函数名:chkdate
//功能介绍:检查是否为日期
//参数说明:要检查的字符串
//返回值:0:不是日期 1:是日期
function chkdate(datestr)
{
var lthdatestr
if (datestr != "")
lthdatestr= datestr.length ;
else
lthdatestr=0;

var tmpy="";
var tmpm="";
var tmpd="";
//var datestr;
var status;
status=0;
if ( lthdatestr== 0)
return 0


for (i=0;i<lthdatestr;i++)
{ if (datestr.charAt(i)== '-')
{
status++;
}
if (status>2)
{
//alert("Invalid format of date!");
return 0;
}
if ((status==0) && (datestr.charAt(i)!='-'))
{
tmpy=tmpy+datestr.charAt(i)
}
if ((status==1) && (datestr.charAt(i)!='-'))
{
tmpm=tmpm+datestr.charAt(i)
}
if ((status==2) && (datestr.charAt(i)!='-'))
{
tmpd=tmpd+datestr.charAt(i)
}

}
year=new String (tmpy);
month=new String (tmpm);
day=new String (tmpd)
//tempdate= new String (year+month+day);
//alert(tempdate);
if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
{
//alert("Invalid format of date!");
return 0;
}
if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
{
//alert ("Invalid month or day!");
return 0;
}
if (!((year % 4)==0) && (month==2) && (day==29))
{
//alert ("This is not a leap year!");
return 0;
}
if ((month<=7) && ((month % 2)==0) && (day>=31))
{
//alert ("This month is a small month!");
return 0;

}
if ((month>=8) && ((month % 2)==1) && (day>=31))
{
//alert ("This month is a small month!");
return 0;
}
if ((month==2) && (day==30))
{
//alert("The Febryary never has this day!");
return 0;
}

return 1;
}

guoweidong 2004-10-12
  • 打赏
  • 举报
回复
http://blog.csdn.net/guoweidong/archive/2004/08/22/JavaScrip.aspx

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧