首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为d.getMilliseconds()调用将毫秒格式设置为始终为3位数字

为d.getMilliseconds()调用将毫秒格式设置为始终为3位数字
EN

Stack Overflow用户
提问于 2018-05-01 11:24:34
回答 3查看 1.8K关注 0票数 3

所以我有这样的想法:

代码语言:javascript
运行
复制
new Date().getMilliseconds();

然而,有时这只产生1或2位数字,而不是3位。

所以我试着使用:

代码语言:javascript
运行
复制
new Date().getMilliseconds().toFixed(3);

所以它总是3位数,但这似乎总是产生000,我不知道为什么。有人知道怎么做吗?

EN

回答 3

Stack Overflow用户

发布于 2018-05-01 11:27:52

您可以使用padStart将字符串填充到所需的长度:

代码语言:javascript
运行
复制
setInterval(() => {
  const str = String(new Date().getMilliseconds()).padStart(3, '0');
  console.log(str);
}, 99);

不过,这是一个有点新的特性,所以如果您想要支持较旧的浏览器,则需要polyfill。

票数 5
EN

Stack Overflow用户

发布于 2018-05-01 11:33:31

toFixed(3)返回的是小数点之后的三位数,而不是小数点之前的三位数,而getMilliseconds()返回的是小数点后没有有效数字的整数值--这就是为什么总是得到一个以.000结尾的数字的原因。

因此,正如另一个帖子所建议的那样,您可以使用padStart。如果你不想使用它,你可以这样做:

代码语言:javascript
运行
复制
(1000 + new Date().getMilliseconds()).toString().substr(1);
票数 0
EN

Stack Overflow用户

发布于 2020-03-03 02:58:22

只有几毫秒,在无聊的基础上:

代码语言:javascript
运行
复制
let m = new Date().getMilliseconds();
if     (m<1){m = "000";}
else if(m<10){m = "00" + m;}
else if(m<100){m = "0" + m;}

仍然使用基础知识;现在使用交互性和整个时间,以毫秒。

代码语言:javascript
运行
复制
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;
}
代码语言:javascript
运行
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50110974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档