http://blog.csdn.net/guoweidong/archive/2004/08/22/JavaScrip.aspx
解决方案 »
- 顶者有分======VML流程图控制,动态、可修改------------jsPlumb插件使用----
- 关于javascript,读取多张本地图片的问题。求指点指点....
- 请问怎么用javascript判断一个fileupload上传文件的大小?
- 如何给下拉列表的选项添加样式
- 跨框架取其他网站网页的某个元素的value
- 用ie浏览器,showModalDialog子窗口连续刷新父窗口2次,就出现window.dialogArguments.document为空或不是对象,怎样解决?
- 小弟对js不太熟悉,请帮忙看一下代码有什么问题,谢谢!
- 得到字体,颜色,显示打印框,open,saveas框
- 很简单的问题,在线等待请帮助我
- 怎样引用模态窗口的父窗口?谢谢!
- JS小问题, 快来!
- 触发事件的问题
//函数名: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;
}
js难道不能计算日期相减吗?我不知道,期待大虾。
我有一个笨方法,
date类型数据有一个parse方法,能够得到该日期距起点(1970 年 1 月 1 日)的毫秒数。
那么两个日期型parse以后再相减就得到了两个日期之间的毫秒数。再变换。
dataDiff=parseInt(parse(date1))-parseInt(parse(date2))//得到了日期差的毫秒数。
赫赫,我都不好意思写下去了。
dateDiff=dateDiff/1000/60/60/24
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天。
{
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
<!--
//计算两个日期的差,跟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>
{
ms=parseInt(Date.parse(date1));
ms=ms+intMs;
date1 = new Date(ms);
return date1;
}
进攻参考
{
diff=parseInt(Date.parse(date1))-parseInt(Date.parse(date2))
diffDay=round(diff/1000/60/60/24-0.5);
return diffDay;
}