谢谢!等着救命呢~~
13 个解决方案
#1
没看懂意思。
#2
哈哈,飞MM..
#3
我也没看明白~~~
但是帮顶
但是帮顶
#4
<script language="javascript" type="text/javascript">
function fillit()
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="" onblur="fillit();return true;" onclick="//fillit();">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
function fillit()
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="" onblur="fillit();return true;" onclick="//fillit();">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
#5
没看明白~~~ 顶
请清楚一点。。。。。。。
请清楚一点。。。。。。。
#6
<script language="javascript" type="text/javascript">
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
if (obj.value=='')
{ document.getElementById("t3").value = ''; }
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
if (obj.value=='')
{ document.getElementById("t3").value = ''; }
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
#7
看了下好像还是没有完全满足楼主的要求,
/*如第一个文本框输入31,在第二个文本框的值变为2009-09-30*/
这一需求,楼主可以自行判断,再取得最后的月末日期.
/*如第一个文本框输入31,在第二个文本框的值变为2009-09-30*/
这一需求,楼主可以自行判断,再取得最后的月末日期.
#8
根据楼主的意思,把lantersen(蓝水仁--倍感秋凉!~) 的修改了一下,看看是否是这个效果~
test.htm
---------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<script language="javascript" type="text/javascript">
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
ds = getday(month,ds);
var nd = new Date(year, month-1, ds);
t1.value = nd.format('yyyy-MM-dd');
}
//根据月份返回每月最大的天数,输入参数应为数值型
function getday(month,day)
{
var myLi = {
month : [",1,3,5,7,8,10,12,", ",2,", ",4,6,9,11," ],
maxDay : [ 31, 28, 30 ]
};
for (i = 0; i < myLi["month"].length; i++) {
if (myLi["month"][i].indexOf(","+month+",") >= 0){
if (day>myLi["maxDay"][i])
{
return (myLi["maxDay"][i]);
}
else {
return day;
}
};
}
}
//日期格式化,如"yy-MM-dd"格式
Date.prototype.format = function(format)
{
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;
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
</BODY>
</HTML>
test.htm
---------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<script language="javascript" type="text/javascript">
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
ds = getday(month,ds);
var nd = new Date(year, month-1, ds);
t1.value = nd.format('yyyy-MM-dd');
}
//根据月份返回每月最大的天数,输入参数应为数值型
function getday(month,day)
{
var myLi = {
month : [",1,3,5,7,8,10,12,", ",2,", ",4,6,9,11," ],
maxDay : [ 31, 28, 30 ]
};
for (i = 0; i < myLi["month"].length; i++) {
if (myLi["month"][i].indexOf(","+month+",") >= 0){
if (day>myLi["maxDay"][i])
{
return (myLi["maxDay"][i]);
}
else {
return day;
}
};
}
}
//日期格式化,如"yy-MM-dd"格式
Date.prototype.format = function(format)
{
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;
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
</BODY>
</HTML>
#9
迷糊^混乱...
#10
up
#11
时间是可以直接进行加减的:
<script>
var str = "2006-09-01";
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var n = 31
var dt2 = new Date(dt1.getTime() + (n - 1) * 24 * 60 * 60 * 1000);
alert(dt2.toLocaleString());
</script>
不过搂主需要小心的是,getMonth 的月份 0 表示"1月",1 表示"2月"
<script>
var str = "2006-09-01";
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var n = 31
var dt2 = new Date(dt1.getTime() + (n - 1) * 24 * 60 * 60 * 1000);
alert(dt2.toLocaleString());
</script>
不过搂主需要小心的是,getMonth 的月份 0 表示"1月",1 表示"2月"
#12
理解搂主的需求有误
#13
代码为:
<script>
// 先按指定天数进行相加
var str = "2006-09-01";
var n = 31
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var dt2 = new Date(dt1.getTime() + (n - 1)* 24 * 60 * 60 * 1000);
// 检测月份如果变化变化
if(dt1.getMonth() != dt2.getMonth())
{
// 设定为1号
dt2.setDate(1);
// 往回减去1天
dt2 = new Date(dt2.getTime() - 24 * 60 * 60 * 1000);
}
// 输出结果
alert(dt2.toLocaleString());
</script>
<script>
// 先按指定天数进行相加
var str = "2006-09-01";
var n = 31
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var dt2 = new Date(dt1.getTime() + (n - 1)* 24 * 60 * 60 * 1000);
// 检测月份如果变化变化
if(dt1.getMonth() != dt2.getMonth())
{
// 设定为1号
dt2.setDate(1);
// 往回减去1天
dt2 = new Date(dt2.getTime() - 24 * 60 * 60 * 1000);
}
// 输出结果
alert(dt2.toLocaleString());
</script>
#1
没看懂意思。
#2
哈哈,飞MM..
#3
我也没看明白~~~
但是帮顶
但是帮顶
#4
<script language="javascript" type="text/javascript">
function fillit()
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="" onblur="fillit();return true;" onclick="//fillit();">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
function fillit()
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="" onblur="fillit();return true;" onclick="//fillit();">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
#5
没看明白~~~ 顶
请清楚一点。。。。。。。
请清楚一点。。。。。。。
#6
<script language="javascript" type="text/javascript">
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
if (obj.value=='')
{ document.getElementById("t3").value = ''; }
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
if (obj.value=='')
{ document.getElementById("t3").value = ''; }
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>
#7
看了下好像还是没有完全满足楼主的要求,
/*如第一个文本框输入31,在第二个文本框的值变为2009-09-30*/
这一需求,楼主可以自行判断,再取得最后的月末日期.
/*如第一个文本框输入31,在第二个文本框的值变为2009-09-30*/
这一需求,楼主可以自行判断,再取得最后的月末日期.
#8
根据楼主的意思,把lantersen(蓝水仁--倍感秋凉!~) 的修改了一下,看看是否是这个效果~
test.htm
---------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<script language="javascript" type="text/javascript">
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
ds = getday(month,ds);
var nd = new Date(year, month-1, ds);
t1.value = nd.format('yyyy-MM-dd');
}
//根据月份返回每月最大的天数,输入参数应为数值型
function getday(month,day)
{
var myLi = {
month : [",1,3,5,7,8,10,12,", ",2,", ",4,6,9,11," ],
maxDay : [ 31, 28, 30 ]
};
for (i = 0; i < myLi["month"].length; i++) {
if (myLi["month"][i].indexOf(","+month+",") >= 0){
if (day>myLi["maxDay"][i])
{
return (myLi["maxDay"][i]);
}
else {
return day;
}
};
}
}
//日期格式化,如"yy-MM-dd"格式
Date.prototype.format = function(format)
{
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;
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
</BODY>
</HTML>
test.htm
---------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<script language="javascript" type="text/javascript">
function fillit(obj)
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
ds = getday(month,ds);
var nd = new Date(year, month-1, ds);
t1.value = nd.format('yyyy-MM-dd');
}
//根据月份返回每月最大的天数,输入参数应为数值型
function getday(month,day)
{
var myLi = {
month : [",1,3,5,7,8,10,12,", ",2,", ",4,6,9,11," ],
maxDay : [ 31, 28, 30 ]
};
for (i = 0; i < myLi["month"].length; i++) {
if (myLi["month"][i].indexOf(","+month+",") >= 0){
if (day>myLi["maxDay"][i])
{
return (myLi["maxDay"][i]);
}
else {
return day;
}
};
}
}
//日期格式化,如"yy-MM-dd"格式
Date.prototype.format = function(format)
{
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;
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
</BODY>
</HTML>
#9
迷糊^混乱...
#10
up
#11
时间是可以直接进行加减的:
<script>
var str = "2006-09-01";
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var n = 31
var dt2 = new Date(dt1.getTime() + (n - 1) * 24 * 60 * 60 * 1000);
alert(dt2.toLocaleString());
</script>
不过搂主需要小心的是,getMonth 的月份 0 表示"1月",1 表示"2月"
<script>
var str = "2006-09-01";
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var n = 31
var dt2 = new Date(dt1.getTime() + (n - 1) * 24 * 60 * 60 * 1000);
alert(dt2.toLocaleString());
</script>
不过搂主需要小心的是,getMonth 的月份 0 表示"1月",1 表示"2月"
#12
理解搂主的需求有误
#13
代码为:
<script>
// 先按指定天数进行相加
var str = "2006-09-01";
var n = 31
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var dt2 = new Date(dt1.getTime() + (n - 1)* 24 * 60 * 60 * 1000);
// 检测月份如果变化变化
if(dt1.getMonth() != dt2.getMonth())
{
// 设定为1号
dt2.setDate(1);
// 往回减去1天
dt2 = new Date(dt2.getTime() - 24 * 60 * 60 * 1000);
}
// 输出结果
alert(dt2.toLocaleString());
</script>
<script>
// 先按指定天数进行相加
var str = "2006-09-01";
var n = 31
var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
var dt2 = new Date(dt1.getTime() + (n - 1)* 24 * 60 * 60 * 1000);
// 检测月份如果变化变化
if(dt1.getMonth() != dt2.getMonth())
{
// 设定为1号
dt2.setDate(1);
// 往回减去1天
dt2 = new Date(dt2.getTime() - 24 * 60 * 60 * 1000);
}
// 输出结果
alert(dt2.toLocaleString());
</script>