您能告诉我如何以HH:MM:SS格式设置时间。我想将其设置为div?
您能告诉我如何以HH:MM:SS格式设置时间。我想将其设置为div?
Answers:
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,它们将只显示一位数字,而不显示两位数字。
更新:
对于带前缀0的尝试
var time = new Date();
console.log(
("0" + time.getHours()).slice(-2) + ":" +
("0" + time.getMinutes()).slice(-2) + ":" +
("0" + time.getSeconds()).slice(-2));
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>
使用moment.js和setInterval的非常简单的方法。
setInterval(() => {
moment().format('h:mm:ss a');
}, 1000)
样品输出
使用setInterval()
设置为1000ms或1秒,输出将每1秒刷新一次。
下午3:25:50
这就是我在一个副项目中使用此方法的方式。
setInterval(() => {
this.time = this.shared.time;
}, 1000)
也许您想知道使用setInterval()
是否会导致一些性能问题。
我认为setInterval本质上不会给您带来严重的性能问题。我怀疑这种声誉可能来自更早的时代,当时CPU的功能不那么强大。...-寂寞的一天
不,setInterval本身并不占用大量CPU。如果您有很多间隔以非常短的周期运行(或者以非常长的间隔运行非常复杂的操作),那么这很容易占用大量CPU,具体取决于间隔的执行情况和执行的频率。...-aroth
但是总的来说,在您的网站上确实像在很多地方使用setInterval可能会减慢速度。20个同时运行的间隔或多或少的繁重工作都会影响演出。然后再说一次..您真的可以弄乱任何部分,我想这不是setInterval的问题。...-杰安迪
new Date().toLocaleTimeString('it-IT')
it-IT
如果需要,该语言环境恰好会延迟小时,并忽略了PM或AM01:33:01
.toLocaleTimeString()
?
1:15:30 PM
,它缺少初始0,并添加了PM,否则您将不得不删除它。我编辑了答案以清除该问题。
该代码将在控制台中以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
这是一个如何使用javascript在div(only_time)中设置时间的示例。
function date_time() {
var date = new Date();
var am_pm = "AM";
var hour = date.getHours();
if(hour>=12){
am_pm = "PM";
}
if (hour == 0) {
hour = 12;
}
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>