- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先让我说我有一个“有效”的解决方案,部分来自之前的线程:
How to convert time milliseconds to hours, min, sec format in JavaScript?
我的目标是使用本地化/国际化技术将持续时间(以毫秒为单位)转换为人类可读的形式。输入值以毫秒为单位,并且是移动目标,因为它是 ETA(预计到达时间)而不是确定的到达时间。它会不断重新计算。
我的想法是有效的。我正在寻找的是可以利用 momentjs 的东西(因为它已经有了本地化系统)。它不一定是 momentjs特别是,但我想要一些具有更优雅选项的东西,尤其是在本地化方面。我也使用并因此可以访问 i18next 提供的任何内容.
这是当前解决方案的简化版本(它在实用函数的对象字面量中):
function duration (millis) {
// in actual code, a function "i18n.t(key)" would return a properly
// localized string. Instead, I'll just store English strings in an object
var mockTranslation = {
hoursLabel: "hr",
minutesLabel: "min",
secondsLabel: "s"
}
millis = parseInt(millis);
function msToTime(duration) {
var milliseconds = parseInt((duration%1000)/100)
, seconds = parseInt((duration/1000)%60)
, minutes = parseInt((duration/(1000*60))%60)
, hours = parseInt((duration/(1000*60*60))%24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
return {
hours : hours,
minutes: minutes,
seconds: seconds,
milliseconds: milliseconds
}
}
var converted = msToTime(millis);
var final = "" + converted.hours + " " + mockTranslation.hoursLabel
+ " " + converted.minutes + " " + mockTranslation.minutesLabel
+ " " + converted.seconds + " " + mockTranslation.secondsLabel;
return final;
}
// test with a sample input of 416000 ms.
console.log(duration(416000)); // 00 hr 06 min 56 s
在这种情况下,我采用了与原始线程类似的方法,但我返回了一个可用的对象,而不是自动转换为字符串。在我的真实代码中,我有一些其他的条件,我通过了一些选项,这些选项将返回一个未本地化的值。但是在这里我们看到我获取对象并将其与 i18next 提供的一些语言条目连接起来。 .这就是本地化发生的地方。
但在我看来,持续时间对他们来说比交换测量单位更重要。
使用 momentjs似乎有点矫枉过正,但尽管如此,我还是看不到任何持续时间函数。所有与日期相关的函数。
因为我觉得我的解决方案不是很灵活,而且本地化有点二流,有人知道更好的方法吗?
最佳答案
可以使用 moment.js 以人类可读的方式显示以毫秒为单位的持续时间:
moment.duration(416000).humanize();
以上代码返回:7 分钟
。是您需要的吗?
当然你可以使用 moment.js 中的 i18n。你只需要调用:
moment.locale('es');
moment.duration(416000).humanize();
获取西类牙语本地化的持续时间(7 分钟
)。
如果您需要更详细的结果(6 分 56 秒
),请查看此库:https://github.com/EvanHahn/HumanizeDuration.js
关于javascript - 从毫秒本地化 "duration"或 "time remaining",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488430/
我的 Graphite 中有这个配置: # go-carbon.aggregation [sum_counts] pattern = ^stats_counts.* xFilesFactor = 0
使用 React.js,假设我有一个父组件,它有一个状态列表: myList: [1, 2, 3] 我在 myList 上做了一个 .map() ,并为列表中的每个项目呈现一个新组件。所以我的父应用程
我正在尝试使用 Tortoise SVN 提交 *.csproj 文件,但得到: 提交失败!...中止提交....csproj 仍然存在冲突。 好的,那么我如何确定冲突是什么,以便我有希望解决它? 最
在我的命令式 Scala 代码中,我有一个算法: def myProcessor(val items: List) { var numProcessed = 0 while(numProces
据我所知,删除应用程序时,唯一可以留下的残余是与钥匙串(keychain)相关的,对吧? 我说的不是硬件层面的位不归零,而是软件层面的。 如果我对应用程序进行删除/全新安装,那么旧应用程序物理上唯一可
总结:我有一个 ByteBuffer,我正在其中抽取一些数据。之后,我想通过套接字发送此数据。 所以,我写了这样的代码: private static void serialize(ByteB
假设目标时间是下午 4.30,当前时间是下午 3.25,我将如何计算到达目标时间的剩余分钟数?我需要几分钟内的结果。 session_start(); $m=30; //unset($_SESSION
我正在尝试在 PowerShell 中编写一个包装函数,该函数基本上评估第一个参数,并基于该函数在计算机上运行程序。然后,包装函数的所有剩余参数都应该传递给运行的程序。 所以它应该看起来像这样: fu
我的免费试用期还剩三天。我还有很多“剩余学分”。免费试用后我是否仍然拥有这些积分,以便我可以通过将订阅切换到“即用即付”选项来保持我的东西正常运行? 最佳答案 不,一旦您的试用期结束,您剩余的积分将不
我的免费试用期还剩三天。我还有很多“剩余学分”。免费试用后我是否仍然拥有这些积分,以便我可以通过将订阅切换到“即用即付”选项来保持我的东西正常运行? 最佳答案 不,一旦您的试用期结束,您剩余的积分将不
我有一个 IObservable以及一些根据某些条件处理字符串的观察者: observable.Subscribe(s => { if (s.StartsWith("a")) {...} }); ob
我有以下代码: 这是我的代码: print (start_timestamp) start_timestamp_no_iso = datetime.strptime(start_timestamp,
这个问题在这里已经有了答案: python strip function is not giving expected output (4 个答案) 关闭 6 年前。 我有一个包含两列时间值的文本文
我有一个 HTML 网站,其中有一个页面使用 PHP 代码来查询 MySQL 数据库。该表包含 3 列(日期、时间、剩余)。根据当前日期和时间,我希望 HTML 页面返回并显示“剩余”列中的相应值。
我是 Python 的 super 新手,当我的源 csv 文件更改其格式时,我陷入了循环。日期字段现在有这样的:2020-07-22T00:00:00.000 而我想要的是这样的:2020-07-2
我们有一个 NAnt 脚本来更新我们在 TFS 中的“预构建”程序集,作为我们的 TeamCity 构建项目之一。构建由其他构建触发。它执行 TF checkout ,移动一些文件,然后执行 TF c
我正在使用 CPU 利用率为 100% 的 Google Cloud PostgreSQL。我已将实例升级为使用 2 个内核。现在该实例在 2 个 CPU 和 3.75Gb 的 RAM 上运行。该实例
我正在努力理解 flexbox 容器如何与其他块交互。我的页面上只有一个 flexbox,我可以做我想做的事。但是当我混入其他页面元素时,事情变得很奇怪。问题似乎是空间分配。 我的 flexbox 容
使用 MVC,当我从 Controller servlet 获取对 jsp 页面的响应时,URI 仍然是 servlet 的 URI。我希望显示 JSP 的 URI,它显示从 Controller s
我正在处理两个包含日期列的 csv 文件,第一个 csv 文件与我的代码配合良好,但第二个文件出现错误,显示为“ValueError:未转换的数据仍然是:09”。 请参阅下面的我的代码和屏幕截图,有人
我是一名优秀的程序员,十分优秀!