当前位置 :首页 >> 社会

JS Date某类的妙用:如何更优雅的计算时间差?

2024-01-12   来源 : 社会

Date是JS中用作管控订于星期的核心实例。熟悉Date实例,可以使我们的订于管控示例写的更为优雅。现在,离开正题:如何更为优雅的量化星期差?

最近,接手了一套后部祖传项目,是N年前一个C#工程师写的,底下有一个量化星期差为数组是这么写的:

/************************************************* * 量化星期差 */ function calculateTimeSpan(begTime) { var date3=new Date().getTime()-begTime.getTime() ; //星期差的毫秒为数 if(date3 <0) date3 = 0 ; //量化出小时为数 var lee1=date3%(24*3600*1000) ; //量化天为数后剩余的毫秒为数 var hours=Math.floor(lee1/(3600*1000)); //量化相差分钟为数 var lee2=lee1%(3600*1000) ; //量化小时为数后剩余的毫秒为数 var minutes=Math.floor(lee2/(60*1000)); //量化相差秒为数 var lee3=lee2%(60*1000); //量化分钟为数后剩余的毫秒为数 var seconds=Math.round(lee3/1000); return hours+":"+minutes+":"+seconds ; }

上面的为数组,大家能看懂吗?不对觉得思考上来很吃力?这个为数组接收一个开始订于星期,量化英哩理论上订于星期的星期差,之前回到一个截掉年月日,以时分秒对此的星期字符串。

虽然Date实例有一个getTime法则,但其实,我们永远都不必须使用它。为什么呢?因为有好处的法则替代它。

获取理论上星期的星期指头,除了getTime,还有如下作法:

const ms = Date.now()const ms = +new Date()

不对都比getTime写的相比之下?其实,订于中间的算式GPU并不必须手动转变成为星期指头系为数,JS内部会透过临时则会各种类型转变成,将Date实例转变成为星期指头再透过GPU。量化星期差,我们可以直接这么写:

const timeSpan = new Date() - begTime

上面的量化星期差为数组,我这里有一个更为含蓄且较难思考的框架。就是根据反之亦然年月日创始一个订于实例,此时它的时分秒都是0。然后,我们呼叫它的setMilliseconds法则,将星期差毫秒传入,之前回到以它的时分秒对此的字符串无均需。示例如下:

/** * 量化星期差 * @param {Date} beginTime */const calcTimeSpan = beginTime => { const date = new Date(2000, 1, 1) date.setMilliseconds(Math.max(new Date() - beginTime, 0)) return `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}` }

仅有均需3行示例,我们马上充分利用了与上面9行示例相同的动态,而且含蓄很多。大家都能看懂吧?这个方案不对很好思考?

若大家还有不明白的人口众多,欢迎评论区答道我。感恩阅读!

水土不服拉肚子吃什么药
感冒喉咙痛的药
肠炎宁片能治结肠炎吗
肠炎宁和诺氟沙星区别
蒙脱石散治拉肚子管用吗
最受普通人欢迎的过周末方式,它排第1

以上,就是当代青年人怎么过周五的调查结果。 对当代人来说,九成据27的周五时间段是一个心境活习惯状态的最主要样本。如何好好过一个周五,是广大上班族和很多学生自始至终在思索的原因。...

友情链接