我想要的是用Javascript
获取当前时间的输出。输出应类似于:
15:28:30 PM
我使用以下代码得到了这个:
var date = new Date();
document.write("Current time: " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
if (date.getHours() <= 12)
document.write(" AM");
else
document.write(" PM");
所以我得到的输出是:
Current time: 3:0:16 AM
但我想知道是否有更快或更清洁的解决方案来解决这个问题,因为我觉得我的解决方案根本不好。
使用更好的方法或解决方案是否可以获得相同的行为?
提前致谢!
答案 0 :(得分:3)
var date = new Date();
var time = date.toLocaleString('en').split(', ').pop();
这将为您提供所需的确切格式。虽然我会使用像Moment.js或Date.js这样的库。很多选择与那些。
答案 1 :(得分:1)
就是这样:
var dt = new Date;
console.log(dt.toLocaleTimeString());
答案 2 :(得分:0)
我认为你的做法没有错。但是,如果您想要不同格式的灵活性,可以使用一个名为moment.js的库,它允许您构建和格式化日期。
moment().format('hh:mm:ss A'); // 12:00:00 AM
答案 3 :(得分:0)
我认为你做对了。只需要修改一点就能得到你的期望:
var date = new Date();
int hour = date.getHours();
string abbr;
if (date.getHours() <= 12)
abbr = " AM";
else {
hour = hour + 12;
abbr = " PM";
}
document.write("Current time: " + hour + ":" + date.getMinutes() + ":" + date.getSeconds() + abbr);
答案 4 :(得分:0)
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
if (minutes < 10) {
minutes = "0" + minutes
}
if (seconds < 10) {
seconds = "0" + seconds
}
str += hours + ":" + minutes + ":" + seconds + " ";
if(hours > 11){
str += "PM"
} else {
str += "AM"
}
return str;
}