如何以HH:MM:SS的格式显示当前时间?
如何以HH:MM:SS的格式显示当前时间?
你可以使用本地函数 Date.toLocaleTimeString()
:
var d = new Date();
var n = d.toLocaleTimeString();
这将显示例如:
"11:33:01"
var d = new Date();
var n = d.toLocaleTimeString();
alert("The time is: \n"+n);
new Date().toLocaleTimeString()
:获取当前时间并转化为本地时间格式。 - aljgomfunction checkTime(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
// add a zero in front of numbers<10
m = checkTime(m);
s = checkTime(s);
document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
t = setTimeout(function() {
startTime()
}, 500);
}
startTime();
<div id="time"></div>
演示仅使用JavaScript
更新
(function () {
function checkTime(i) {
return (i < 10) ? "0" + i : i;
}
function startTime() {
var today = new Date(),
h = checkTime(today.getHours()),
m = checkTime(today.getMinutes()),
s = checkTime(today.getSeconds());
document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
t = setTimeout(function () {
startTime()
}, 500);
}
startTime();
})();
Javascript
中做到这一点。var time = new Date();
console.log(time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds());
目前它返回15:5:18
。请注意,如果任何值小于10,则仅使用一位数字而不是两位数字进行显示。
在JSFiddle中检查。
更新:
对于前导0,请尝试
var time = new Date();
console.log(
("0" + time.getHours()).slice(-2) + ":" +
("0" + time.getMinutes()).slice(-2) + ":" +
("0" + time.getSeconds()).slice(-2));
String(date.getMinutes()).padStart(2, "0");
,这将在不足两位数时添加一个0。 - user8094363new Date().toTimeString().slice(0,8)
请注意toLocaleTimeString()可能会返回类似9:00:00 AM
的内容。
使用方法:
var d = new Date();
localtime = d.toLocaleTimeString('en-US', { hour12: false });
结果:18:56:31
function realtime() {
let time = moment().format('h:mm:ss a');
document.getElementById('time').innerHTML = time;
setInterval(() => {
time = moment().format('h:mm:ss a');
document.getElementById('time').innerHTML = time;
}, 1000)
}
realtime();
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
<div id="time"></div>
setInterval(() => {
moment().format('h:mm:ss a');
}, 1000)
示例输出
使用设置为1000毫秒或1秒的setInterval()
,输出将每1秒刷新一次。
下午3:25:50
这是我在一个旁边的项目中使用此方法的方式。
setInterval(() => {
this.time = this.shared.time;
}, 1000)
也许您会想知道使用 setInterval()
是否会导致性能问题。
我认为 setInterval 并不会导致显著的性能问题。我怀疑它的声誉来自早期,那时 CPU 的功率较低。... - lonesomeday
没有,setInterval 本身并不是 CPU 密集型的。如果您有很多间隔时间非常短的间隔器(或者一个在适度长时间间隔上运行的非常复杂的操作),那么这很容易变得 CPU 密集型,具体取决于您的间隔器正在做什么以及它们频繁地执行操作的程度。... - aroth
但总的来说,在您的网站上大量使用 setInterval 可能会减慢事情的速度。20 个同时运行的间隔器,无论如何重要的是它们的负载,都会影响展示效果。再次强调..您真的可以弄乱任何部分,我想这不是 setInterval 的问题。... - jAndy
紧凑的时钟功能:
setInterval(function() {
let d = new Date()
console.log(`${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`)
}, 1000);
new Date().toLocaleTimeString('it-IT')
it-IT
区域设置会在必要时填充小时,并省略 PM 或 AM 标记,例如 01:33:01
.toLocaleTimeString()
的解决方案,提供了什么样的独特优势? - Jason Aller这段代码将在控制台中以HH:MM:SS格式输出当前时间,它考虑了GMT时区。
var currentTime = Date.now()
var GMT = -(new Date()).getTimezoneOffset()/60;
var totalSeconds = Math.floor(currentTime/1000);
seconds = ('0' + totalSeconds % 60).slice(-2);
var totalMinutes = Math.floor(totalSeconds/60);
minutes = ('0' + totalMinutes % 60).slice(-2);
var totalHours = Math.floor(totalMinutes/60);
hours = ('0' + (totalHours+GMT) % 24).slice(-2);
var timeDisplay = hours + ":" + minutes + ":" + seconds;
console.log(timeDisplay);
//Output is: 11:16:55