所以我有这样的想法:
new Date().getMilliseconds();
然而,有时这只产生1或2位数字,而不是3位。
所以我试着使用:
new Date().getMilliseconds().toFixed(3);
所以它总是3位数,但这似乎总是产生000
,我不知道为什么。有人知道怎么做吗?
发布于 2018-05-01 11:27:52
您可以使用padStart
将字符串填充到所需的长度:
setInterval(() => {
const str = String(new Date().getMilliseconds()).padStart(3, '0');
console.log(str);
}, 99);
不过,这是一个有点新的特性,所以如果您想要支持较旧的浏览器,则需要polyfill。
发布于 2018-05-01 11:33:31
toFixed(3)
返回的是小数点之后的三位数,而不是小数点之前的三位数,而getMilliseconds()
返回的是小数点后没有有效数字的整数值--这就是为什么总是得到一个以.000
结尾的数字的原因。
因此,正如另一个帖子所建议的那样,您可以使用padStart
。如果你不想使用它,你可以这样做:
(1000 + new Date().getMilliseconds()).toString().substr(1);
发布于 2020-03-03 02:58:22
只有几毫秒,在无聊的基础上:
let m = new Date().getMilliseconds();
if (m<1){m = "000";}
else if(m<10){m = "00" + m;}
else if(m<100){m = "0" + m;}
仍然使用基础知识;现在使用交互性和整个时间,以毫秒。
var myVar = setInterval(myTimer, 100);
function myTimer() {
let d = new Date();
let m = d.getMilliseconds();
if(m<1){m = "000" + m;}
else if(m<10){m = "00" + m;}
else if(m<100){m = "0" + m;}
var dateString = d.toLocaleTimeString();
dateString = dateString.replace(" AM", "." + m + " AM");
dateString = dateString.replace(" PM", "." + m + " PM");
document.getElementById("demo").innerHTML = dateString;
}
<p>Start and stop this clock (always starts at current time with milliseconds):</p>
<p id="demo">Time at some time</p>
<button
id="stop"
onclick="clearInterval(myVar);
document.getElementById('restart').style.display='block';
document.getElementById('stop').style.display='none';"
style="display:block;"
>Stop time</button>
<button
id="restart"
onclick="myVar = setInterval(myTimer, 100);
document.getElementById('restart').style.display='none';
document.getElementById('stop').style.display='block';"
style="display:none;"
>Restart time</button>
https://stackoverflow.com/questions/50110974
复制相似问题