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