Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 getSeconds()和分钟翻转_Javascript - Fatal编程技术网

Javascript getSeconds()和分钟翻转

Javascript getSeconds()和分钟翻转,javascript,Javascript,Date()如何处理滚动 假设您调用getMinute(),它返回10。调用getSecond(),它返回0。这是因为时间是第10分钟的0秒,还是因为在两次通话之间,时钟滚动到了新的一分钟,而不是第11分钟的0秒 在JS中有没有规定的方法来处理这个问题 如果不是,有没有比通常反复读取所有值直到匹配的技巧更好的解决方案 是因为时间是10分钟的0秒 对 …还是因为在两次通话之间,时钟滚动到了新的一分钟,而不是11分钟的第二个零点 编号:-) Date实例中的时间不会更改,除非您更改它。您可以安全地读

Date()
如何处理滚动

假设您调用
getMinute()
,它返回10。调用
getSecond()
,它返回0。这是因为时间是第10分钟的0秒,还是因为在两次通话之间,时钟滚动到了新的一分钟,而不是第11分钟的0秒

在JS中有没有规定的方法来处理这个问题

如果不是,有没有比通常反复读取所有值直到匹配的技巧更好的解决方案

是因为时间是10分钟的0秒

…还是因为在两次通话之间,时钟滚动到了新的一分钟,而不是11分钟的第二个零点

编号:-)

Date
实例中的时间不会更改,除非您更改它。您可以安全地读取小时、分钟、秒,并知道它们都与您创建或上次修改该日期实例时一样

当您创建一个
Date
实例时,它会存储一个“时间值”,它是自1970年1月1日格林威治标准时间午夜起的毫秒数。(之前日期的
Date
实例的时间值为负值,之后的实例的时间值为正值。)除非通过
Date
的一种变异方法(
setHours
等)更改时间值,否则该时间值永远不会更改

下面是一个活生生的例子,说明它在实际操作中不会发生变化:

//这将立即获取一个'Date'实例
设d=新日期();
//该日期实例存储“时间值”
log(d.valueOf()+“是”+d.toISOString());
//即使我们稍等片刻,我们仍然看到相同的值
设置超时(()=>{
log(d.valueOf()+“是”+d.toISOString());

}, 2000);
为了帮助您了解
日期
对象的功能,请使其每秒刷新多次。并将所需的属性放置在输出字段中。我之所以添加它,是因为在许多情况下,
getTime()
是最精确的时间引用,因为它包含毫秒。从这一点,你可以通过各种方式计算出分钟、小时或天

下面是一些在将来帮助您的示例:

const-element=document.getElementById('time-var-output');
常量snippetStartT=(新日期()).getTime();
常量echoTime=函数(){
变量日期=新日期();
var time=date.getTime();
element.value='getTime():'+time+“\n”;
element.value+=“seconds.ms:”+(时间/1000)+“\n”;
element.value+='秒:'+parseInt(时间/1000)+“\n”;
element.value+=“分钟:”+parseInt(time/1000/60)+“\n”;
element.value+='hours:'+parseInt(time/1000/60/60)+“\n”;
element.value+='天:'+parseInt(time/1000/60/60/24)+“\n”;
element.value+='启动后的秒数:'+parseInt((time snippetStartT)/1000)+“\n”;
element.value+='UTC日期:'+Date.toISOString().slice(0,19).替换('T','');
}
window.setInterval(echoTime,(1000/20))//每秒刷新20次
输出:

还是因为不支持闰秒,所有UTC函数都被破坏了?回答得很好,谢谢。看来转换成ISO格式也能正确处理闰秒。@user11567957-很高兴这有帮助!请注意,ISO内容只是显示所有字段的一种方便方式。不知道你说的“处理”闰秒是什么意思。JavaScript日期,并且没有任何关于尝试调整日期的内容(实际上它不能)。