如何使用javascript将秒从用户输入转换为日期和时间?

如何使用javascript将秒从用户输入转换为日期和时间?,javascript,date,input,time,Javascript,Date,Input,Time,$document.on'keydown',函数toDateTimesecs{ //var secs=$'input'。焦点; var t=new Date1970,0,1;//历元 t、 SetSecondSecs; console.logt; $toDate.htmlt; $‘输入’。焦点; 返回t; }; 转换秒数 迄今为止 我建议您使用事件输入来捕获用户的每个更改,同样,您应该将该事件绑定到文本字段本身。此外,使用此上下文访问文本字段元素并获取当前值 这种方法不能验证任何东西 $se

$document.on'keydown',函数toDateTimesecs{ //var secs=$'input'。焦点; var t=new Date1970,0,1;//历元 t、 SetSecondSecs; console.logt; $toDate.htmlt; $‘输入’。焦点; 返回t; }; 转换秒数

迄今为止


我建议您使用事件输入来捕获用户的每个更改,同样,您应该将该事件绑定到文本字段本身。此外,使用此上下文访问文本字段元素并获取当前值

这种方法不能验证任何东西

$seconds.on'input',函数{ var t=new Date1970,0,1;//历元 t、 setSecondThis.value; $toDate.htmlt; $‘输入’。焦点; 返回t; }; 转换秒数

迄今为止

函数参数secs不是输入的值。该参数实际上是对keydown事件的引用。您需要手动将变量设置为输入值

现在,有了这些,我们不清楚为什么要在keydown事件中首先做这项工作。当用户离开该字段并且仅当该字段的值已更改时才这样做可能更有意义,在这种情况下,您可能需要更改事件

另外,当您使用的字符串不包含任何html时,不要使用.html方法。它会在代码中打开安全漏洞,并会影响性能。相反,对非HTML字符串使用.text方法

$document.on'change',函数toDateTime{ var secs=$'input'.val;//多重差异:

在您的代码中,secs返回了一个对象,因此要获得该值,您必须执行secs.key 在用1修复代码后,我发现它不是定量的。它只会添加最后一个数字,而不是总输入。为了解决这个问题,我将它从keydown改为keyup,而不是从函数中获取值,我使用jQuery获取值。 $document.on'keyup',函数toDateTime{ var secs=$'input'.val; var t=new Date1970,0,1;//历元 t、 SetSecondSecs; console.logt; $toDate.htmlt; $‘输入’。焦点; 返回t; }; 转换秒数

迄今为止

更改:

$(document).on('keydown', function toDateTime(secs) {
    // var secs = $('input').focus();
    var t = new Date(1970, 0, 1); // Epoch
    t.setSeconds(secs);
    console.log(t);
    $("#toDate").html(t);
    $('input').focus();
    return t;
 });
致:


关于堆栈溢出的好答案不仅仅是工作代码。他们应该解释问题是什么以及你的答案是如何解决的。或者var t=new Datethis.value*1000。@RobG是的,听起来更好。
$(document).on('keydown', function toDateTime(secs) {
    // var secs = $('input').focus();
    var t = new Date(1970, 0, 1); // Epoch
    t.setSeconds(this.value);
    console.log(t);
    $("#toDate").html(t);
    $('input').focus();
    return t;
 });