我如何从日期对象中得到这个hh:mm:ss?
var d = new Date(); // for now
datetext = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
我有时会得到以下结果,
12:10:1
应该是
12:10:01
我认为这也发生在小时和分钟。
所以我在此之后
01:01:01
不是这1:1:1
答案 0 :(得分:40)
解决方案 - (tl; dr版本)
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];
注意:这不要求您包含任何外部文件或库,因此执行所需的时间会更快。
答案 1 :(得分:10)
您可以使用此代码段。我还将其添加到jsfiddle
并添加了类型更安全的评论,因此请务必查看小提琴。
如果您正在使用jQuery,请在准备好的函数中调用它。否则,您可以使用纯JavaScript来更新字段的值。
$(document).ready(function(){
var d = new Date();
var formatted_time = time_format(d);
$('#yourTimeField').text(formatted_time);
});
将这两种方法添加到您的脚本中(您也可以将其粘贴到单个文件中,就像它在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;
}
就是这样:)希望它有所帮助:)
答案 2 :(得分:6)
我建议您查看一些日期/时间库。 Moment.js就是一个很好的例子。
您可以简单地执行以下操作
var d = new Date();
var formatteddatestr = moment(d).format('hh:mm:ss a');
答案 3 :(得分:1)
您也可以尝试使用http://momentjs.com/。用于解析,验证,操作和格式化日期的javascript日期库。