javascript中的毫秒到时间

javascript中的毫秒到时间,javascript,jquery,Javascript,Jquery,我有一个功能,它将秒格式化为时间 function secondsToTime(secs){ var hours = Math.floor(secs / (60 * 60)); var divisor_for_minutes = secs % (60 * 60); var minutes = Math.floor(divisor_for_minutes / 60); var divisor_for_seconds = divisor_for_minutes %

我有一个功能,它将秒格式化为时间

 function secondsToTime(secs){
    var hours = Math.floor(secs / (60 * 60));
    var divisor_for_minutes = secs % (60 * 60);
    var minutes = Math.floor(divisor_for_minutes / 60);
    var divisor_for_seconds = divisor_for_minutes % 60;
    var seconds = Math.ceil(divisor_for_seconds);
    return minutes + ":" + seconds; 
}
它工作得很好,但我需要一个函数将毫秒转换为时间,我似乎无法理解我需要对这个函数做什么才能以这种格式返回时间

mm:ss.mill
01:28.5568
函数毫秒时间(毫秒){
var ms=数学绝对值(毫秒)%1000;
var secs=(毫秒<0?-1:1)*(数学绝对值(毫秒)-ms)/1000);
ms=“”+ms;
ms='000'。子字符串(ms.length)+ms;
返回秒时间(秒)+'.'+ms;
}

为什么不这样使用日期对象

let getTime = (milli) => {
  let time = new Date(milli);
  let hours = time.getUTCHours();
  let minutes = time.getUTCMinutes();
  let seconds = time.getUTCSeconds();
  let milliseconds = time.getUTCMilliseconds();
  return hours + ":" + minutes + ":" + seconds + ":" + milliseconds;
}

其他答案中有很多不必要的地板。如果字符串以毫秒为单位,请按如下方式转换为h:m:s:

function msToTime(s) {
  var ms = s % 1000;
  s = (s - ms) / 1000;
  var secs = s % 60;
  s = (s - secs) / 60;
  var mins = s % 60;
  var hrs = (s - mins) / 60;

  return hrs + ':' + mins + ':' + secs + '.' + ms;
}
如果要将其格式化为hh:mm:ss.sss,请使用:

函数msToTime(s){
//填充为2或3位,默认值为2
功能板(n,z){
z=z | | 2;
返回('00'+n).切片(-z);
}
var ms=s%1000;
s=(s-ms)/1000;
var secs=s%60;
s=(s-秒)/60;
var mins=s%60;
var-hrs=(s-分钟)/60;
回程焊盘(小时)+':'+焊盘(分钟)+':'+焊盘(秒)+'。+焊盘(毫秒,3);
}
console.log(msToTime(55018))
这对我很有用:

var dtFromMillisec = new Date(secs*1000);
var result = dtFromMillisec.getHours() + ":" + dtFromMillisec.getMinutes() + ":" + dtFromMillisec.getSeconds();

一个更简单的解决方案是:

var d = new Date();
var n = d.getMilliseconds(); 
var
/**
*将以毫秒为单位的时间解析为时间结构
*@param{Number}ms
*@returns{Object}timeStruct
*@return{Integer}timeStruct.d天
*@return{Integer}timeStruct.h小时
*@return{Integer}timeStruct.m分钟
*@return{Integer}timeStruct.s秒
*/
MilliSecotimestract=函数(毫秒){
变量d,h,m,s;
如果(伊斯南(ms)){
返回{};
}
d=ms/(1000*60*60*24);
h=(d-~~d)*24;
m=(h-~~h)*60;
s=(m-~~m)*60;
返回{d:~~d,h:~~h,m:~~m,s:~~s};
},
toFormattedStr=函数(TSSTRUCT){
var-res='';
if(typeof tStruct==='object'){
res+=结构m+“最小值”+结构s+“秒”;
}
返回res;
};
//客户端代码:
变量
ms=新日期().getTime(),
timeStruct=毫秒级,
formattedString=toFormattedStr(时间结构);
警报(格式化字符串);

为了避免重新发明车轮,以下是我最喜欢的单衬套解决方案:

/**
*将毫秒转换为时间字符串(hh:mm:ss:mss)。
*
*@param编号ms
*
*@返回字符串
*/
功能时间(毫秒){
返回新日期(ms).toISOString().slice(11,-1);
}
console.log(时间(12345*1000));//“03:25:45.000”
尝试此功能:-

函数msToTime(毫秒){
var d=新日期(空)
d、 设置毫秒(毫秒)
返回d.toLocaleTimeString(“en-US”)
}
var ms=4000000

警报(msToTime(ms))
这是一个适用于我的案例的可能解决方案。它将毫秒转换为hh:ss时间:

function millisecondstotime(ms) {
var x = new Date(ms);
var y = x.getHours();
if (y < 10) {
y = '0' + y;
} 
var z = x.getMinutes();
if (z < 10) {
    z = '0' + z;
} 
return y + ':' + z;
}
函数毫秒至时间(ms){
var x=新日期(毫秒);
变量y=x.getHours();
如果(y<10){
y='0'+y;
} 
var z=x.getMinutes();
if(z<10){
z='0'+z;
} 
返回y+':'+z;
}

编辑RobG的解决方案并使用JavaScript的日期()

函数msToTime(毫秒){
函数addZ(n){

return(n这是我得到的解决方案,效果非常好

function msToHuman(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);


return hours + "hrs " minutes + "min " + seconds + "sec " + milliseconds + 'ms';
}

下面是一个过滤器,它使用:

app.filter('milliSecondsToTimeCode', function () {
    return 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 + ":" + minutes + ":" + seconds + "." + milliseconds;
    };
});
函数msToTime(s){
var d=新日期;
var datestring=(“0”+d.getDate()).slice(-2)+“-”+(“0”+(d.getMonth()+1)).slice(-2)+“-”+
d、 getFullYear()+“”
+(“0”+d.getHours()).slice(-2)
+“:”+(“0”+d.getMinutes()).slice(-2)
+“:”+(“0”+d.getSeconds()).slice(-2)
+“+d.getms();
返回日期字符串;
}

输出
2019年10月16日18:55:32.605

大多数答案不包括超过24小时的情况。这一个是。 我建议延长日期对象:

class SuperDate扩展日期{
获取比赛时间(){
返回Math.floor(this/36e5.toString().padStart(2,'0'))
+this.toISOString().slice(13,-1)
}
}
console.log('marathon',新的超日期(11235200).raceTime)
console.log('ironman',新的超日期(40521100).raceTime)
log('spartathlon',新的超日期(116239000).raceTime)
console.log('epoch',new SuperDate(new Date()).raceTime)
Prons:

  • 简单明了的代码;易于根据需要进行修改
  • 支持任意时间(>24小时即可)
  • 将时间格式化为
    00:00:00.0
您可以将其放入帮助文件中

export const msecToTime = ms => {
  const milliseconds = ms % 1000
  const seconds = Math.floor((ms / 1000) % 60)
  const minutes = Math.floor((ms / (60 * 1000)) % 60)
  const hours = Math.floor((ms / (3600 * 1000)) % 3600)
  return `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${
    seconds < 10 ? '0' + seconds : seconds
  }.${milliseconds}`
}
export const msecottime=ms=>{
常量毫秒=毫秒%1000
常数秒=数学楼层((毫秒/1000)%60)
常数分钟=数学楼层((毫秒/(60*1000))%60)
常数小时=数学楼层((毫秒/(3600*1000))%3600)
返回`${hours<10?'0'+hours:hours}:${minutes<10?'0'+minutes:minutes}:${
秒<10?'0'+秒:秒
}.${毫秒}`
}
最简单的方法

let getTime = (Time)=>{
    let Hours = Time.getHours();
    let Min = Time.getMinutes();
    let Sec = Time.getSeconds();

    return `Current time ${Hours} : ${Min} : ${Sec}`;
}

console.log(getTime(new Date()));

让我们看看这里的1秒=1000ms,所以…就我而言,1000ms等于1秒,那么你怎么能在ms区域有一个4位数的数字呢?使用
Math.floor
进行秒和分钟可能是个好主意。
Math.floor
对于毫秒来说不是必需的。@RobG这不是毫秒,而是Richard代码中的两行@inhan同意,我给了你+1。但是Richard也有一个ms的
Math.floor
,现在已经被删除了。:-)谁呼!这篇帖子让我的声誉超过了9000!当我加上18000(即毫秒18秒)和通话时间。getMinutes()它返回30分钟和时间。getSeconds()它返回18秒,正如我看到的GETMIX,把输入看作是秒。当GET秒以毫秒为单位考虑时,有一种方法可以通过毫秒和时间。GE****方法返回正确的时间。在我的情况下,我需要输出0分钟18秒。@拉杰什卡雷迪,我用UTC吸气剂解决了这个问题。P需要const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; export function getFormattedDateAndTime(startDate) { if (startDate != null) { var launchDate = new Date(startDate); var day = launchDate.getUTCDate(); var month = monthNames[launchDate.getMonth()]; var year = launchDate.getFullYear(); var min = launchDate.getMinutes(); var hour = launchDate.getHours(); var time = launchDate.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true }); return day + " " + month + " " + year + " - " + time + "" ; } return ""; }
function msToHuman(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);


return hours + "hrs " minutes + "min " + seconds + "sec " + milliseconds + 'ms';
}
app.filter('milliSecondsToTimeCode', function () {
    return 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 + ":" + minutes + ":" + seconds + "." + milliseconds;
    };
});
{{milliseconds | milliSecondsToTimeCode}}
export const msecToTime = ms => {
  const milliseconds = ms % 1000
  const seconds = Math.floor((ms / 1000) % 60)
  const minutes = Math.floor((ms / (60 * 1000)) % 60)
  const hours = Math.floor((ms / (3600 * 1000)) % 3600)
  return `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${
    seconds < 10 ? '0' + seconds : seconds
  }.${milliseconds}`
}
let getTime = (Time)=>{
    let Hours = Time.getHours();
    let Min = Time.getMinutes();
    let Sec = Time.getSeconds();

    return `Current time ${Hours} : ${Min} : ${Sec}`;
}

console.log(getTime(new Date()));