jquery:如何从日期对象中获取hh:mm:ss?

lau*_*kok 20 javascript jquery date jquery-1.9

我如何从日期对象中得到这个hh:mm:ss?

var d = new Date(); // for now
datetext = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
Run Code Online (Sandbox Code Playgroud)

我有时会得到这个结果,

12:10:1
Run Code Online (Sandbox Code Playgroud)

应该是

12:10:01
Run Code Online (Sandbox Code Playgroud)

我认为这也发生在小时和分钟.

所以我就是在这之后

01:01:01
Run Code Online (Sandbox Code Playgroud)

不是1:1:1

Sun*_*pta 42

解决方案 - (tl;博士版)

datetext = d.toTimeString().split(' ')[0]

说明:

toTimeString返回完整的时间.我们用空格分割它来获取时间组件,然后取第一个有用的值.:)

完成流程:

d = new Date();
// d is "Sun Oct 13 2013 20:32:01 GMT+0530 (India Standard Time)"
datetext = d.toTimeString();
// datestring is "20:32:01 GMT+0530 (India Standard Time)"
// Split with ' ' and we get: ["20:32:01", "GMT+0530", "(India", "Standard", "Time)"]
// Take the first value from array :)
datetext = datetext.split(' ')[0];
Run Code Online (Sandbox Code Playgroud)

注意:这不要求您包含任何外部文件或库,因此执行所需的时间会更快.


Mic*_*ael 11

您可以使用此代码段.我还添加了它jsfiddle并添加了类型更安全的注释,因此请务必查看小提琴.

如果您正在使用jQuery,请在准备好的函数中调用它.否则,您可以使用纯JavaScript来更新字段的值.

$(document).ready(function(){
    var d = new Date();
    var formatted_time = time_format(d);
    $('#yourTimeField').text(formatted_time);
});
Run Code Online (Sandbox Code Playgroud)

将这两种方法添加到您的脚本中(您也可以将其粘贴到单个文件中,就像在jsfiddle代码段中一样):

function time_format(d) {
    hours = format_two_digits(d.getHours());
    minutes = format_two_digits(d.getMinutes());
    seconds = format_two_digits(d.getSeconds());
    return hours + ":" + minutes + ":" + seconds;
}

function format_two_digits(n) {
    return n < 10 ? '0' + n : n;
}
Run Code Online (Sandbox Code Playgroud)

就是这样:)希望它有帮助:)


Jay*_*ayu 5

我建议你查看一些日期/时间库.Moment.js就是一个很好的例子.

您可以简单地执行以下操作

var d = new Date();
var formatteddatestr = moment(d).format('hh:mm:ss a');
Run Code Online (Sandbox Code Playgroud)

这是小提琴的一个例子