将值设置为datetime-本地HTML输入

时间:2015-03-17 21:42:40

标签: javascript html datetime

我有一个type="datetime-local"的HTML输入对象,我想设置一个自定义值,每次更改值时now() + 3小时。

基于alert(object.value)返回YYYY-MM-DDTHH:MM类型字符串的事实,我认为我需要(除了计算日期)还要正确格式化字符串。所以我有:

在HTML

中添加了onchange属性
<input .... onchange="datesReactions()"/>

扩展JS Date原型以添加小时数

Date.prototype.addHours = function(h) {
   this.setTime(this.getTime() + (h*60*60*1000)); 
   return this;   
}

创建了datesReactions()函数,如下所示

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以帮助您帮助初学者调试:)提前感谢。

0 个答案:

没有答案