getBDRate=(strDate-firstDay)/365 应为
getBDRate=Round((strDate-firstDay)/365,2)
getBDRate=Round((strDate-firstDay)/365,2)
解决方案 »
- 两段代码冲突,麻烦分析下。
- EXT viewport 布局管理的缓存问题
- 请教:javaScript 图片处理 (灰度png图上色)
- 哪位大哥帮忙进来看一下,给一个对应的解密算法
- 大家帮忙看一个问题,子窗体条件跳转到新窗体的问题。跟代码~
- 谁能介绍一本介绍JAVASCRIPT基础的书?
- 能否通过js让一个表单的值等于另外一个表单的值?
- 找一个简单的菜单
- document.layers["STAFF"].moveTo(x+0, y+0); 这条语句如果能让IE识别,应当怎样写?
- bootstrap的模态框问题 有没有大神帮忙看看~
- 请问怎么从javascript调用flash的actionscript?
- 我既不想让它弹出对话框,也不想打印到默认打印机上,有什么办法吗?
只能自己写一个了。我给你试试看,不过需要时间。
其中isDate考虑了日期分隔符的问题,getBDRate没有考虑,所以定义了一个全局变量保存分隔符
<script>
var sQuote = "/";
function isDate(strDate, strQuote){
/*参数有两个,第一个为表示日期的字符串,格式为年(分隔符)月(分隔符)日。
第二个为年月日之间的分隔符。调用的时候第二个参数可以省略,如果省略则认
为年月日之间用"/"分隔。*/
if(arguments.length == 1){
strQuote = "/";
}else{
sQuote = strQuote;
}
var arrDate = strDate.split(strQuote);
arrDate[1] = arrDate[1] - 1;//js中月份是0-11
strDate = arrDate.join("/");
var objDate = new Date(strDate);
if(isNaN(Date.parse(strDate))) return false;
if(parseInt(arrDate[0]) != objDate.getFullYear() ||
parseInt(arrDate[1]) != objDate.getMonth() ||
parseInt(arrDate[2]) != objDate.getDate()
) return false;
return true;
}
function getBDRate(strDate){
var today = new Date();
var objDate;
var firstDay = new Date(today.getFullYear(), 1, 1);
if(!isDate(strDate)){
alert("请输入日期!");
return NaN;
}else{
var arrDate = strDate.split(sQuote);
arrDate[1] = arrDate[1] - 1;
strDate = arrDate.join("/")
objDate = new Date(strDate);
}
//js里两个Date对象是可以直接相减的,结果和调用valueOf是一样的,都返回两者
//之间的毫秒数
return Math.round((objDate.valueOf() - firstDay.valueOf())/(365 * 24 * 3600 * 1000)*100)/100;
}var x = getBDRate("2002/1/30");
if(!isNaN(x)) alert(x);
</script>
不过在我的机上调getBDRate("2002/1/30")时
arrDate[0]=1
arrDate[1]=29
arrDate[2]=2002