Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中显示hh:mm:ss.msmsms_Javascript_Node.js_Date - Fatal编程技术网

在javascript中显示hh:mm:ss.msmsms

在javascript中显示hh:mm:ss.msmsms,javascript,node.js,date,Javascript,Node.js,Date,我正在学习关于javascript日期对象的W3Schools教程,并尝试以hh:mm:ss.msmsms格式显示时间 <!DOCTYPE html> <html> <body> <p id="demo">Click the button to display a date after changing the hours, minutes, and seconds.</p> <button onclick="myFuncti

我正在学习关于javascript日期对象的W3Schools教程,并尝试以hh:mm:ss.msmsms格式显示时间

<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to display a date after changing the hours, minutes, and seconds.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var d = new Date();
d.setHours(07,01,01,312);
var x = document.getElementById("demo");
x.innerHTML=d;
}
</script>

</body>
</html>

如何让javascript替换
07:01:01.312

您必须自己构建有问题的字符串:

x.innerHTML = (d.getHours()+':'+d.getMinutes()+':'+d.getSeconds()+'.'+d.getMilliseconds()).replace(/(^|:)(\d)(?=:|\.)/g, '$10$2');
// result: 07:01:01.312
我们构建字符串(小时、分钟、秒、毫秒),然后运行replace在任何单个数字前面添加一个零

编辑:下面是我在上面的
.replace()
中使用的正则表达式的解释:

(^|:)(\d)(?=:|\.)


基本上,它查找(1)字符串的开头或
,然后(2)一个位数,然后(3)另一个
。然后,它将(1)和(2)替换为匹配的(1),
0以及匹配的数字(2)。
/g
的意思是“在全球范围内做这件事”。因此,
7:1:1.312
变成了
07:01:01.312

你尝试过这个库吗“遵循W3C教程”-不,我认识到这种糟糕的代码风格,它肯定来自W3C学校。W3Schools与W3C()完全没有关联。另一方面,MDN有一些相当不错的功能。(只是为了在为时已晚之前拯救灵魂而发表评论)更多关于这个主题,您将需要使用实例方法或momentjs。Date.prototype.toString的输出完全依赖于实现,您将从不同的实现中获得不同的格式。要获得特定格式,除非您希望依赖ES5,否则必须自己完成。但这可能不是你想要的。
(^|:)(\d)(?=:|\.)