MOZA PitHouse中如何处理SessionTimeLeft的秒数以实现易读的时间显示格式?
MOZA PitHouse中如何处理SessionTimeLeft的秒数以实现易读的时间显示格式?
兄弟我太懂这种感觉了——完全没碰过编程,却要折腾赛车仪表盘的时间格式,看着一堆干巴巴的秒数真的头大!不过别担心,咱们用几段简单的JavaScript代码就能把SessionTimeLeft的秒数转成时:分:秒或者分:秒这种一目了然的格式,我给你拆解得明明白白,照着抄就行~
第一步:先搞懂咱们要做的事
你现在通过Telemetry.get("v1/gameData/SessionTimeLeft").value拿到的是纯数字的秒数,比如125秒其实是2分05秒,咱们要做的就是把这个数字拆成小时、分钟、剩下的秒,然后拼成好看的格式。
第二步:直接用现成的代码片段(不用懂原理,复制就行)
根据你的赛事会话时长,选一个适合的代码就行:
格式1:分:秒(适合短会话,比如练习赛/冲刺赛)
如果你的赛事时长不超过1小时,用这个就够了,能自动给不足10的秒数补零(比如5秒会显示成00:05,125秒显示成02:05):
const totalSeconds = Telemetry.get("v1/gameData/SessionTimeLeft").value; const minutes = Math.floor(totalSeconds / 60); const seconds = Math.floor(totalSeconds % 60); // 补零处理,确保分钟和秒都是两位数 const formattedTime = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; formattedTime;
格式2:时:分:秒(适合长会话,比如耐力赛)
如果你的赛事超过1小时,比如3小时的耐力赛,这个格式能完整显示小时数,同样自动补零:
const totalSeconds = Telemetry.get("v1/gameData/SessionTimeLeft").value; const hours = Math.floor(totalSeconds / 3600); const remainingSecondsAfterHours = totalSeconds % 3600; const minutes = Math.floor(remainingSecondsAfterHours / 60); const seconds = Math.floor(remainingSecondsAfterHours % 60); // 补零处理,确保所有部分都是两位数 const formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; formattedTime;
第三步:怎么在MOZA PitHouse里用?
打开MOZA PitHouse的JavaScript Text Binding设置,把上面选好的代码直接粘贴进去就行——不用改任何东西(除非你想换格式),软件会自动执行这段代码,把秒数转成你要的时间格式显示出来。
给你补个小解释(怕你好奇)
要是你忍不住想知道这代码为啥能行,我用大白话讲两句:
Math.floor():就是把数字往下取整,比如125/60是2.083,取整后就是2分钟%:这个是取余数,125%60就是125减去2*60剩下的5秒padStart(2, '0'):就是如果数字只有1位,前面补个0,比如5秒变成05,看着更整齐
放心,哪怕你完全不懂这些,直接复制代码用就没问题,我身边好多玩模拟赛车的朋友都是这么搞的~
内容来源于stack exchange
相关产品推荐
相关产品推荐

