使用 javascript 或 jquery 自动填充当前时间

Using javascript or jquery to auto populate the current time

我正在尝试使用 javascript and/or jquery 在类型时间字段中自动填充时间;不是日期。它会自动填充。但是,我试图让它自动填充当前时间而不是指定时间。 (例如,“17:40:11”)

如何从 javascript 或 jquery 获取当前时间并将其自动填充到输入时间字段中?

下面粘贴了我的代码和我在使用 Javascript 时遇到的以下错误。

我试过将 jquery 与 new Date($.now()); 一起使用,但我得到了类似的错误,但我的时间是一堆数字(例如 123435334)

感谢您的帮助。

HTML

<input type="time" value="" />

javascript

$(document).ready(function myTimer() {

    var now = new Date(Date.now());
    var f = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();           
    $("input[type=time]").val(f);

})

错误

jquery.js:7373 :

The specified value '7:13:40' does not conform to the required format. The format is 'HH:mm', 'HH:mm:ss' or 'HH:mm:ss.SSS' where HH is 00-23, mm is 00-59, ss is 00-59, and SSS is 000-999.

缺少则补零...想法:

if(hours<10) hours = "0"+hours;

$(document).ready(function myTimer() {
    var now = new Date(Date.now());
    var f = leadZero(now.getHours()) + ":" + leadZero(now.getMinutes()) + ":" + leadZero(now.getSeconds());           
    $("input[type=time]").val(f);

})

function leadZero(_something) {    
    if(parseInt(_something)<10) return "0"+_something;
    return _something;//else    
}

您的问题是 getHours() 返回 12 小时格式。 修复它的几种方法。您可以检查小时是否小于 10,然后添加前导“0”。但是,我宁愿给你这个 link:

http://blog.stevenlevithan.com/archives/date-time-format

您可以在 javascript.

中了解有关格式化日期的更多信息