8 ответов:
function 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(); })();
вы можете использовать нативную функцию
Date.toLocaleTimeString():var d = new Date(); var n = d.toLocaleTimeString();Это будет отображаться, например:
"11:33:01"Я нашел его на http://www.w3schools.com/jsref/jsref_tolocaletimestring.asp
вы можете сделать это
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));
можно использовать момент.js для этого.
var now = new moment(); console.log(now.format("HH:mm:ss"));выходы:
16:30:03
(new Date).toTimeString().slice(0,8)обратите внимание, что toLocaleTimeString () может возвращать что-то вроде
9:00:00 AM.
этот код будет выводить текущее время в формате 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
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>очень простой способ использования момент.js и setInterval.
setInterval(() => { moment().format('h:mm:ss a'); }, 1000)пример вывода
используя
setInterval()установить на 1000 мс или 1 секунду, выход будет обновляться каждые 1 секунду.3:25:50 часов
это, как я использую этот метод на одном из моих проектов.
setInterval(() => { this.time = this.shared.time; }, 1000)может быть, вам интересно, если с помощью
setInterval()может вызвать некоторые проблемы с производительностью.является ли процессор setInterval интенсивным?
я не думаю, что setInterval по своей сути будет вызывать у вас значительные проблемы с производительностью. Я подозреваю, что репутация может исходить из более ранней эпохи, когда процессоры были менее мощными. ... - одинокий день
нет, setInterval не является интенсивным процессором сам по себе. Если у вас есть много интервалов, работающих на очень коротких циклов (или очень сложная операция, выполняемая на умеренно длинном интервале), то это может легко стать интенсивным процессором, в зависимости от того, что именно делают ваши интервалы и как часто они это делают. ... - арот
но в целом, с помощью setInterval действительно нравится много на вашем сайте может замедлить вещи. 20 одновременно работающих интервалов с более или менее тяжелой работой повлияют на шоу. А потом еще раз.. вы действительно можете испортить любую часть думаю что не проблема метода setInterval. ... - jAndy
Это пример того, как установить время в div(only_time) с помощью javascript.
function date_time() { var date = new Date(); var am_pm = "AM"; var hour = date.getHours(); if(hour>=12){ am_pm = "PM"; } if(hour>12){ hour = hour - 12; } if(hour<10){ hour = "0"+hour; } var minute = date.getMinutes(); if (minute<10){ minute = "0"+minute; } var sec = date.getSeconds(); if(sec<10){ sec = "0"+sec; } document.getElementById("time").innerHTML = hour+":"+minute+":"+sec+" "+am_pm; } setInterval(date_time,500); <per> <div class="date" id="time"></div> </per>
Comments