【发布时间】:2021-06-13 03:39:57
【问题描述】:
好的,我正在尝试在 Google Apps 脚本中计算从早上 9:30 开始的时间,我希望输出如下所示:XX hrs XX mins。问题是当我尝试计算自 9:30 以来的分钟数时,当然,它给了我所有的分钟数,而不仅仅是计算小时数后的剩余分钟数。我需要将分钟设为小数,以便将其乘以 60 并在单元格中显示输出。这是我目前使用的代码:
function CALCTIME() {
const minutes = 1000 * 60;
const hours = minutes * 60;
const days = hours * 24;
const years = days * 365;
var now = new Date(),
then = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate(),
9,30,0),
diff = now.getTime() - then.getTime();
let hrs = diff / hours;
let mins = Math.floor((diff / minutes) % 60);
return Math.floor(hrs) + " hrs " + mins + " mins";
}
问题不在于小时数,我有这一切都很好。分钟是问题,因为我不知道如何只替换字符串中的索引。我查看并尝试了这些网页和 Stack Exchange 链接上显示的方法以获取答案,但我找不到任何答案:
https://www.w3schools.com/jsref/jsref_replace.asp
How do I replace a character at a particular index in JavaScript?
问题:您希望这些陈述做什么,为什么? mins.replaceAt(0, "0."); mins % 60; 第一个语句,我希望用“0”替换分钟内的第一个字符。但是随后,@jabaa 指出我无法用数字替换字符串,我完全忘记了并且没有考虑到这一点。第二个语句我忘了放mins = mins % 60;,这可能无法解决我的问题,我只是忘了放在那里。
我已经回答了你的问题,但有人已经回答了我的问题。
【问题讨论】:
-
您希望这些语句做什么,为什么?
mins.replaceAt(0, "0."); mins % 60; -
mins是一个数字。您想如何用字符串替换数字中的某些内容? -
这篇文章可能对stackoverflow.com/questions/67941993/…有帮助
标签: javascript google-apps-script google-sheets