在JavaScript中,我如何获得:
我想将持续时间转换为冒号分隔时间字符串的秒数(hh:mm:ss)
我在这里找到了一些有用的答案,但他们都谈到转换为x小时和x分钟格式.
那么有一个小代码片段可以用jQuery或原始JavaScript来完成吗?
我试图在几秒钟内得到两个日期之间的差异.逻辑是这样的:
我之所以这么做是因为最后的日期/时间取决于其他一些变量而且它永远不会相同(这取决于用户做某事的速度),而且我还存储了其他事情的初始日期.
我一直在尝试这样的事情:
var _initial = new Date(),
_initial = _initial.setDate(_initial.getDate()),
_final = new Date(_initial);
_final = _final.setDate(_final.getDate() + 15 / 1000 * 60);
var dif = Math.round((_final - _initial) / (1000 * 60));
Run Code Online (Sandbox Code Playgroud)
问题是我从来没有得到正确的区别.我试着分开,24 * 60这将留给我秒,但我从来没有做对.那么我的逻辑有什么不对?我可能会犯一些愚蠢的错误,因为它已经很晚了,但令我烦恼的是我无法让它工作:)
如何将秒转换为HH:mm:ss?
目前我正在使用下面的功能
render: function (data){
return new Date(data*1000).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");;
}
Run Code Online (Sandbox Code Playgroud)
这适用于chrome但在firefox中使用12秒我得到了01:00:12
我想使用moment.js来实现跨浏览器的兼容性
我尝试了这个但是没有用
render: function (data){
return moment(data).format('HH:mm:ss');
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑
我设法找到了没有 moment.js 的解决方案,如下所示
return (new Date(data * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0];
Run Code Online (Sandbox Code Playgroud)
仍然很好奇我怎么能在moment.js做到这一点
嗨,
我有一个16.4534的浮点数,这是视频持续时间的秒数.我想把它转换成HH:MM:SS所以看起来像00:00:16.
做过搜索但没有找到任何相关的东西.
我需要使用正则表达式吗?
非常感谢.
提前致谢.
我有一个带有停止按钮的无限循环的Javascript计时事件.
点击开始按钮时会显示数字.现在我想将这些数字转换为4小时3分50秒
var c = 0;
var t;
var timer_is_on = 0;
function timedCount() {
document.getElementById('txt').value = c;
c = c + 1;
t = setTimeout(function() {
timedCount()
}, 1000);
}
function doTimer() {
if (!timer_is_on) {
timer_is_on = 1;
timedCount();
}
}
function stopCount() {
clearTimeout(t);
timer_is_on = 0;
}
$(".start").on("click", function() {
//var start = $.now();
//alert(start);
//console.log(start);
doTimer();
$(".end").show();
$(".hide_div").show();
});
$(".end").on("click", function() {
stopCount();
});Run Code Online (Sandbox Code Playgroud)
.hide_div {
display: none;
}
.end {
display: none;
}Run Code Online (Sandbox Code Playgroud)
<script …Run Code Online (Sandbox Code Playgroud)我想使用 DatePipe 转换数字(代表秒)以获得如下结果:
00:00:05
我试过用 DatePipe 这样做:
<label>No timezone (default) {{ 5 * 1000 | date:'h:mm:ss'}}</label>
Run Code Online (Sandbox Code Playgroud)
但它产生的结果包含时区 +4(这不是我想要的):
4:00:05
所以为了避免这种情况,我试图将时区偏移设置为 0:
<label>{{ 5 * 1000 | date:'h:mm:ss z':'+0000'}}</label>
<label>{{ 5 * 1000 | date:'h:mm:ss z':'UTC'}}</label>
<label>{{ 5 * 1000 | date:'h:mm:ss z':'GMT'}}</label>
<label>{{ 5 * 1000 | date:'h:mm:ss z':'GMT+0'}}</label>
<label>{{ 5 * 1000 | date:'h:mm:ss z':'UTC+0'}}</label>
Run Code Online (Sandbox Code Playgroud)
但这一次时间移动了 12 小时而不是 0:
12:00:05 格林威治标准时间+0
那么有没有一种方法可以在不移动时区的情况下使用 DatePipe 将秒转换为时间?
或者是否有任何其他角度的管道可用于此目的?
如何使用jQuery将125秒变为00:02:05?
代码很简单,我对编程很陌生。您输入所需的积分和游戏结果,输出就是积分所需的游戏分钟数。
它有效,我的问题是如何将输出转换为 HH:MM 格式?我尝试过 if/else 循环,但工作量很大,更不用说它非常原始且硬编码。for 循环是答案吗?我应该从头开始吗?
先感谢您!
function passPoints(input) {
let gameResult = String(input[0]);
let pointsNeeded = Number(input[1]);
let pointsPerMinute = 0;
if (gameResult == 'w') {
pointsPerMinute = 6;
} else if (gameResult == 'l') {
pointsPerMinute = 4;
}
let minutesOfGameplayNeeded = pointsNeeded / pointsPerMinute;
console.log(minutesOfGameplayNeeded)
}
Run Code Online (Sandbox Code Playgroud) javascript ×8
time ×3
date ×2
angular ×1
date-format ×1
date-pipe ×1
html ×1
jquery ×1
math ×1
modulo ×1
momentjs ×1
php ×1
time-format ×1