2 qq 15290009 qq_15290009 于 2016.02.01 15:58 提问

日期加减的问题!!!!!!!

图片说明
图片说明
恩 具体如图片上说的一样

下面是我的js

//显示当前日期
var d = new Date();
var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
$('#EntTime36').val(s2);
//计算
function test(){
//日期格式必须yyyy-mm-dd,月和日不带0,如2011-3-2
var date1 = $("#EntTime36").val();
var date = new Date(date1);
var num = $('#Timelimit').val;
date.setDate(date.getDate()+num);
var date2 = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();
$('#Maturitydate').val(date2);

}

    调用这个方法了   但是无法实现效果 哪里的问题


    ![图片说明](http://img.ask.csdn.net/upload/201602/01/1454315190_331391.png)


    ![图片说明](http://img.ask.csdn.net/upload/201602/01/1454315251_630398.png)

8个回答

rui888
rui888   Ds   Rxr 2016.02.01 17:10
已采纳
 <!DOCTYPE html>
<html>
<head>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js">
</script>
<script>
 Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + (parseInt(days)|| 0));
    return this;
};
$(document).ready(function(){
//显示当前日期
 var d = new Date();
var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
$('#EntTime36').val(s2);

});

//计算
function test(){$('#Maturitydate').val('');
var num = $('#Timelimit').val();
d = new Date();
var someDate = d.addDays(num );

var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();

var someFormattedDate = y + '-'+ mm + '-'+dd;





$('#Maturitydate').val(someFormattedDate );
}
</script>

</head>
<body>
<p>购买日期 <input id='EntTime36' type='text'/></p>
<p>产品期限<input id='Timelimit' type='text' onblur='test()'/></p>
<p><p>预计到其日<input id='Maturitydate' type='text'/></p>
<p id='sum'> 计算</p>
</body>
</html>
qq_15290009
qq_15290009 那个购买日期改变就计算不了了 能不能购买日期改变了也计算
接近 2 年之前 回复
showbo
showbo   Ds   Rxr 2016.02.01 16:20
     function test(){
        //日期格式必须yyyy-mm-dd,月和日不带0,如2011-3-2
        var date1 = $("#EntTime36").val();
        var date = new Date(date1.replace(/-/g,'/'));////日期参数为字符串时参数为"年/月/日 时:分:秒",否则就是Date(年,月,日,时,分,秒)
        var num = parseInt($('#Timelimit').val()) || 0;/////
        date.setDate(date.getDate()+num);
        var date2 = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();
        $('#Maturitydate').val(date2);

    }
showbo
showbo 回复热呛: EntTime36这个输入控件你改变值也需要计算也要增加onblur。<input id='EntTime36' type='text' onblur='test()' />
接近 2 年之前 回复
showbo
showbo 回复热呛: 你贴出来的正常运行没有?正常用我这个替换没有问题的
接近 2 年之前 回复
qq_15290009
qq_15290009 你看看我上面调用的对不对 之前的那个就是怎么调用的
接近 2 年之前 回复
qq_15290009
qq_15290009 额 没效果
接近 2 年之前 回复
rui888
rui888   Ds   Rxr 2016.02.01 16:30
 <!DOCTYPE html>
<html>
<head>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js">
</script>
<script>
Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + parseInt(days));
    return this;
};
$(document).ready(function(){
var d = new Date();
var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
$('#EntTime36').val(s2);

  $("#sum").click(function(){


var num = $('#Timelimit').val();
var someDate = d.addDays(num );

var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();

var someFormattedDate = y + '-'+ mm + '-'+dd;





$('#Maturitydate').val(someFormattedDate );
  });
});
</script>

</head>
<body>
<p>购买日期 <input id='EntTime36' type='text'/></p>
<p>产品期限<input id='Timelimit' type='text'/></p>
<p><p>预计到其日<input id='Maturitydate' type='text'/></p>
<p id='sum'> 计算</p>
</body>
</html>
rui888
rui888   Ds   Rxr 2016.02.01 16:31

你 的var num = $('#Timelimit').val;

这个少个括号$('#Timelimit').val();

qq_15290009
qq_15290009 我改的自动计算又不好使了 你还是帮我改一下吧 要失去焦点 不要像你那样的
接近 2 年之前 回复
qq_15290009
qq_15290009 额 多个括号 也没什么效果 你上面的那个 咋改成自动计算
接近 2 年之前 回复
qq_15290009
qq_15290009 回复热呛: 不用改自动计算 我改好了 但是能不让递增吗
接近 2 年之前 回复
qq_15290009
qq_15290009 额 多个括号 也没什么效果 你上面的那个 咋改成自动计算
接近 2 年之前 回复
spy_sky
spy_sky   2016.02.01 16:35
$(function(){ var startTimeStr = new Date().getTime(); //1970/01/01 至今的毫秒数 var limtDay=5;//假设限制天数是90天 var endTimeStr = startTime + limtDay * 3600 * 24 * 1000;//90天换算成毫秒 var lastTime= new Date(); lastTime.setTime(endTime); console.log(lastTime.getFullYear() +'--'+lastTime.getMonth()+'--'+lastTime.getDate()); })

这个可以实现你的要求

rui888
rui888   Ds   Rxr 2016.02.01 17:00
 <!DOCTYPE html>
<html>
<head>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js">
</script>
<script>
 Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + (parseInt(days|| 0)));
    return this;
};
$(document).ready(function(){
//显示当前日期
 var d = new Date();
var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
$('#EntTime36').val(s2);

});

//计算
function test(){$('#Maturitydate').val('');
var num = $('#Timelimit').val();
d = new Date();
var someDate = d.addDays(num );

var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();

var someFormattedDate = y + '-'+ mm + '-'+dd;





$('#Maturitydate').val(isNaN(y)?'':someFormattedDate );
}
</script>

</head>
<body>
<p>购买日期 <input id='EntTime36' type='text'/></p>
<p>产品期限<input id='Timelimit' type='text' onblur='test()'/></p>
<p><p>预计到其日<input id='Maturitydate' type='text'/></p>
<p id='sum'> 计算</p>
</body>
</html>
rui888
rui888 回复热呛: 这个就是焦点离开的你测试看看。
接近 2 年之前 回复
qq_15290009
qq_15290009 对了 我有个怪事 $(document).ready(function(){ 我的加上这个就都不好使了 不知道为啥
接近 2 年之前 回复
rui888
rui888   Ds   Rxr 2016.02.01 17:09

重新改了下。

<!DOCTYPE html>

Date.prototype.addDays = function(days) { this.setDate(this.getDate() + (parseInt(days)|| 0)); return this; }; $(document).ready(function(){ //显示当前日期 var d = new Date(); var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate(); $('#EntTime36').val(s2); }); //计算 function test(){$('#Maturitydate').val(''); var num = $('#Timelimit').val(); d = new Date(); var someDate = d.addDays(num ); var dd = someDate.getDate(); var mm = someDate.getMonth() + 1; var y = someDate.getFullYear(); var someFormattedDate = y + '-'+ mm + '-'+dd; $('#Maturitydate').val(someFormattedDate ); }


购买日期

产品期限

预计到其日


rui888
rui888   Ds   Rxr 2016.02.02 09:39
  <!DOCTYPE html>
<html>
<head>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js">
</script>
<script>
 Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + (parseInt(days)|| 0));
    return this;
};
$(document).ready(function(){
//显示当前日期
 var d = new Date();
var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
$('#EntTime36').val(s2);

});

//计算
function test(){$('#Maturitydate').val('');
var num = $('#Timelimit').val();
d = new Date($('#EntTime36').val().split('-')[0],$('#EntTime36').val().split('-')[1]-1,$('#EntTime36').val().split('-')[2]);
var someDate = d.addDays(num );

var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();

var someFormattedDate = y + '-'+ mm + '-'+dd;





$('#Maturitydate').val(someFormattedDate );
}
</script>

</head>
<body>
<p>购买日期 <input id='EntTime36' type='text'onblur='test()'/></p>
<p>产品期限<input id='Timelimit' type='text' onblur='test()'/></p>
<p><p>预计到其日<input id='Maturitydate' type='text'/></p>

</body>
</html>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!