为什么使用 'new Date()' & 如何在小于 10 的数字前得到 0 ?- 数字时钟Javascript

框架框架

在我继续学习 JS 的过程中,我尝试构建小项目。

今天,我已经构建了一个数字时钟(我自己制作了一点,并按照教程制作了一个 [更大] 的小时钟)。

有两件小事我不明白,教程中也没有解释。顺便说一句,如果有人感兴趣这里教程

这里是 JS 代码

setInterval(function() {
  let hours = document.querySelector('.hours')
  let minutes = document.querySelector('.minutes')
  let seconds = document.querySelector('.seconds')

  let h = new Date().getHours();
  let m =  new Date().getMinutes();
  let s = new Date().getSeconds();

  hours.innerHTML = hours.innerHTML = h<10?'0'+h:h;
  minutes.innerHTML = m<10?'0'+m:m;
  seconds.innerHTML =  s<10?'0'+s:s;

  
}, 1000);

小东西n°1:

为什么使用new Date()我相信new关键字与对象有关,但我不确定。我刚开始看一眼物体。我试过hours.innerHTML = getHours()哪个在我眼中没问题,但当然没有用。怎么来的?

小东西n°2:

按照教程,如果小时、分钟和秒低于 10,它们将显示为 7、2、4、9 等,而不是 07、02、04、09 等。

我尝试了逻辑和知识的混合(剧透警报 = 它不起作用)并说

if(m < 10) {
 '0' + s
}

我也试过:

if(m < 10) {
 s= '0' + s
 return s
}

这可能是错误的,但对不起,我正在学习......

你猜到了!它没有用!

然后我查看了评论,一个人发布了代码以使0之前的数字更小,10但这是一个速记,我不太明白,尤其是我不明白,为什么在末尾有一个:h, :m,:s每个语句?

这里是片段

setInterval(function() {
  let hours = document.querySelector('.hours')
  let minutes = document.querySelector('.minutes')
  let seconds = document.querySelector('.seconds')

  let h = new Date().getHours();
  let m =  new Date().getMinutes();
  let s = new Date().getSeconds();

  hours.innerHTML = h<10?'0'+h:h;
  minutes.innerHTML = m<10?'0'+m:m;
  seconds.innerHTML =  s<10?'0'+s:s;

  
}, 1000);
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: black;
}

.container {
  width: 90vw;
  margin: auto;
  border: 1px solid rgb(50,50,50);
  margin-top: 50vh;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-around;
  padding: .5em;
  font-size: 3em;
  font-family: verdana;
  background: rgb(170,190,170);
  box-shadow: 0 0 10px black inset;
  box-reflect: below 0 linear-gradient(transparent, white);
  -webkit-box-reflect: below 0 linear-gradient(transparent, rgba(255,255,255,.5));
}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="style.css">
  <title>Digital Clock</title>
</head>
<body>
  
  <div class="container">
    <div class="hours"></div>
    <div class="minutes"></div>
    <div class="seconds"></div>
  </div>

  <script src="main.js"></script>
</body>
</html>

斯科特超速驾驶

小东西n°1:

  • 为什么要使用 new Date()?必须首先创建日期对象以获取当前日期和时间。函数 ( getHours() ) 然后将从这个创建日期获取小时数。

小东西n°2:

  • 为什么在每个语句的末尾都有一个 :h, :m, :s ?这是如何完成此速记的格式。
STATEMENT ? IF_TRUE : IF_FALSE

解释:链接

在这种情况下h<10?'0'+h:h意味着如果h < 10将 innerHTML 设置为'0' + h. 如果 h >= 10 则innerHTML 是h。

if(m < 10) {
 s= '0' + s
 return s
}

由于 if 中的语句,这不起作用。变量是“m”,这不是教程中的比较,在这种情况下是“s”。

我希望这能澄清一点:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在数字前跟随以隐藏选项数据?

Java为什么认为从10到99的所有数字的乘积为0?

如何通过在数字前加0来格式化数字?

当字符串中的数字前面有反斜杠时,为什么会变成“ x0n”?

数字小于10时如何添加前导零?

如何使用React显示工作的数字时钟

Javascript正则表达式拒绝数字前0

如何使用Regex分割非数字前的句号?

如何在RegEx中检测数字前的字符

如何在数字前后添加'

使用while循环时如何在python中排除空行和数字小于零

如何在小于10的数字前插入零?HTML输入框

PHP:如果在数字前使用0,则ksort返回错误的结果

如何在快速代码中得到小于数组5个数字/元素?

数字前加数字

Excel 2010-如何在数字前加上“ 0”使8位数字变为9位数字

如果数字小于10,则前导零-数字0的错误

访问getElementsByTagName生成的节点列表的数字属性时,为什么会得到0(零)?

如何在Python中使用Javascript + Date()数字时间戳?

如何在Powershell中创建一个while循环以计数小于10的数字(最多0)

.BAT文件以循环显示数字-小于10的数字需要加0

为什么使用Carbon会得到无效的数字?

删除06、07等数字前面的0

当秒表中的数字小于10时,该数字开头的0会重复

使用CultureInfo时如何在数字前面显示欧元符号?

Javascript 不支持 64 位整数,为什么 new Date().getTime() 返回 41 位数字?

如何在数字前加上可选字母?

在javascript中使用new Date()时得到错误的日期

如何使 glog 输出在数字前不填充 0?