如何使用 Javascript 将浮点数转换为分钟以添加到当前 UTC 时间?
How can I convert float number into minutes to be added to the current UTC time with Javascript?
我为自己是个彻头彻尾的笨蛋而提前道歉,但实际上这是我尝试用 Javascript 完成某些事情的第一步,我感到有些迷茫和困惑。
我有以下浮点数:53.93
这个十进制值代表分钟和秒,它来自于我从网络浏览器的地理位置 API 获得的经度乘以四 (x4)。我将这个值存储在一个变量中,我想将它转换成分钟和秒,这样我就可以将它添加到当前的 UTC 时间,这样我就可以在屏幕上获得一个新的 HH:MM:SS 时间,并增加差异(当前UTC 时间 + 53 分 93 秒。)
我知道我应该先将时间转换成毫秒才能计算时差,但我一直坚持将浮点数转换成分钟和秒(或者我应该直接将其转换成毫秒吗?)
谢谢你。
JavaScript 的 Date
以毫秒为单位工作,因此如果您有一个表示分钟的数字(无论是否包括小数分钟),您可以通过将其乘以 60 将其转换为毫秒(得到秒)和 1000(得到毫秒),例如,乘以 60,000。 但是,你说你有值 13.48
并且稍后在你的问题文本中你说 "...当前 UTC 时间 + 13 分 48 秒..." 这是两个不同的东西。 .48
一分钟大约是 28.79 秒,而不是 48 秒。所以如果你真的是说 13.48
这个数字应该是 13
分 48
秒,那么计算就更简单了:
const value = 13.48;
const wholeMinutes = Math.trunc(value);
const milliseconds = (wholeMinutes * 60 + (value - wholeMinutes)) * 1000;
您可以通过 Date.now()
获取当前的 date/time,它为您提供自大纪元 UTC(1970 年 1 月 1 日午夜)以来的毫秒数。
您可以通过 new Date(value)
.
从给定的自纪元以来的毫秒数值创建一个 Date
实例
因此,如果 13.48
表示小数分钟(13 分大约 28.79 秒):
const minutes = 13.48;
const nowPlusThoseMinutes = new Date(Date.now() + (minutes * 60000));
实例:
const minutes = 13.48;
const now = Date.now();
const nowPlusThoseMinutes = new Date(now + (minutes * 60000));
console.log(nowPlusThoseMinutes);
console.log(`now = ${new Date(now)}`);
console.log(`nowPlusThoseMinutes = ${nowPlusThoseMinutes}`);
(minutes * 60000
周围的 ()
不是必需的,由于运算符的优先级,*
将在 +
之前发生,但它们可以帮助让人类读者清楚地了解您的意图。)
但是你的意思是13分48秒:
const value = 13.48;
const wholeMinutes = Math.trunc(value);
const milliseconds = (wholeMinutes * 60 + (value - wholeMinutes)) * 1000;
const nowPlusValue = new Date(Date.now() + milliseconds);
实例:
const value = 13.48;
const wholeMinutes = Math.trunc(value);
const milliseconds = (wholeMinutes * 60 + (value - wholeMinutes)) * 1000;
const now = Date.now();
const nowPlusValue = new Date(now + milliseconds);
console.log(`now = ${new Date(now)}`);
console.log(`nowPlusValue = ${nowPlusValue}`);
我为自己是个彻头彻尾的笨蛋而提前道歉,但实际上这是我尝试用 Javascript 完成某些事情的第一步,我感到有些迷茫和困惑。
我有以下浮点数:53.93
这个十进制值代表分钟和秒,它来自于我从网络浏览器的地理位置 API 获得的经度乘以四 (x4)。我将这个值存储在一个变量中,我想将它转换成分钟和秒,这样我就可以将它添加到当前的 UTC 时间,这样我就可以在屏幕上获得一个新的 HH:MM:SS 时间,并增加差异(当前UTC 时间 + 53 分 93 秒。)
我知道我应该先将时间转换成毫秒才能计算时差,但我一直坚持将浮点数转换成分钟和秒(或者我应该直接将其转换成毫秒吗?)
谢谢你。
JavaScript 的 Date
以毫秒为单位工作,因此如果您有一个表示分钟的数字(无论是否包括小数分钟),您可以通过将其乘以 60 将其转换为毫秒(得到秒)和 1000(得到毫秒),例如,乘以 60,000。 但是,你说你有值 13.48
并且稍后在你的问题文本中你说 "...当前 UTC 时间 + 13 分 48 秒..." 这是两个不同的东西。 .48
一分钟大约是 28.79 秒,而不是 48 秒。所以如果你真的是说 13.48
这个数字应该是 13
分 48
秒,那么计算就更简单了:
const value = 13.48;
const wholeMinutes = Math.trunc(value);
const milliseconds = (wholeMinutes * 60 + (value - wholeMinutes)) * 1000;
您可以通过 Date.now()
获取当前的 date/time,它为您提供自大纪元 UTC(1970 年 1 月 1 日午夜)以来的毫秒数。
您可以通过 new Date(value)
.
Date
实例
因此,如果 13.48
表示小数分钟(13 分大约 28.79 秒):
const minutes = 13.48;
const nowPlusThoseMinutes = new Date(Date.now() + (minutes * 60000));
实例:
const minutes = 13.48;
const now = Date.now();
const nowPlusThoseMinutes = new Date(now + (minutes * 60000));
console.log(nowPlusThoseMinutes);
console.log(`now = ${new Date(now)}`);
console.log(`nowPlusThoseMinutes = ${nowPlusThoseMinutes}`);
(minutes * 60000
周围的 ()
不是必需的,由于运算符的优先级,*
将在 +
之前发生,但它们可以帮助让人类读者清楚地了解您的意图。)
但是你的意思是13分48秒:
const value = 13.48;
const wholeMinutes = Math.trunc(value);
const milliseconds = (wholeMinutes * 60 + (value - wholeMinutes)) * 1000;
const nowPlusValue = new Date(Date.now() + milliseconds);
实例:
const value = 13.48;
const wholeMinutes = Math.trunc(value);
const milliseconds = (wholeMinutes * 60 + (value - wholeMinutes)) * 1000;
const now = Date.now();
const nowPlusValue = new Date(now + milliseconds);
console.log(`now = ${new Date(now)}`);
console.log(`nowPlusValue = ${nowPlusValue}`);