我有一个type="datetime-local"
的HTML输入对象,我想设置一个自定义值,每次更改值时now()
+ 3小时。
基于alert(object.value)
返回YYYY-MM-DDTHH:MM
类型字符串的事实,我认为我需要(除了计算日期)还要正确格式化字符串。所以我有:
<input .... onchange="datesReactions()"/>
Date.prototype.addHours = function(h) {
this.setTime(this.getTime() + (h*60*60*1000));
return this;
}
function datesReaction(){
var adesso = new Date;
document.getElementById('ExecutionDate').value = parseDateToInput(adesso.addHours(3));
}
其中解析为字符串由以下简单函数执行:
function parseDateToInput(jsDate){
var jsDay = jsDate.getDate();
if (jsDay < 10){jsDay = '0' + jsDay;}
var jsMonth = jsDate.getMonth();
if (jsMonth < 10){jsMonth = '0' + jsMonth;}
var jsYear = jsDate.getFullYear();
if (jsYear < 10){jsYear = '0' + jsYear;}
var jsHour = jsDate.getHours();
if (jsHour < 10){jsHour = '0' + jsHour;}
var jsMinute = jsDate.getMinutes();
if (jsMinute < 10){jsMinute = '0' + jsMinute;}
return jsYear + '-' + jsMonth + '-' + jsDay + 'T' + jsHour + ':' + jsMinute;
}
然而,虽然单个代码片段本身就可以工作,但是当我更改输入值时,上面没有任何作用。 谁能帮我理解我做错了什么?我准备了以下fiddle以帮助您帮助初学者调试:)提前感谢。