2017-05-19 40 views
0

將時間轉換爲特定時間格式的最簡單方法是什麼? 例如,如何將340分鐘轉換爲hh:mm的格式? 以及如何取回hh:mm的分鐘數? 是否有可能通過moment.js來做到這一點?將時間轉換爲特定格式,相反,Typescript

320 minutes -> 05:20 
05:20 -> 320 minutes 

回答

0

嘗試

function getTimeFromMins(mins) { 
 
    // from http://stackoverflow.com/questions/36035598/how-to-convert-minutes-to-hours-using-moment-js 
 
    if (mins >= 24 * 60 || mins < 0) { 
 
     throw new RangeError("Valid input should be greater than or equal to 0 and less than 1440."); 
 
    } 
 
    var h = mins/60 | 0, 
 
     m = mins % 60 | 0; 
 
    return moment.utc().hours(h).minutes(m).format("HH:mm"); 
 
} 
 

 
function getMinutesFromTime(time) { 
 
    var t = moment.utc(time, "HH:mm") 
 
    return parseInt(t.format("HH")*60) + parseInt(t.format("mm")) 
 
} 
 

 
console.log(getTimeFromMins(320)); 
 
console.log(getMinutesFromTime("05:20"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+0

認真沒有其他更簡單的方法? –

+0

你還需要什麼? Momentjs不提供功能,沒有什麼叫'魔法'! –

2

我不確定momentjs,但既然你問了這個角度標籤,我可以提供一個可能的解決方案,使用管道。

如果你有一個Date對象,你可以簡單地使用Angular的日期管道,這是非常容易使用的。當在模板顯示的日期,你可以使用這樣的:

<div>{{ someDate | date 'hh:mm' }}</div> 

date pipe is here.的文檔。我強烈建議看看它。

如果你正在尋找的是轉換時間像'05:30'的字符串表示,那麼我會建議編寫自己的管道。以下是將時間轉換爲分鐘的一些管道的示例,反之亦然。

import { Pipe, PipeTransform } from '@angular/core'; 

@Pipe({name: 'timeToMinutes'}) 
export class TimeConversionPipe implements PipeTransform { 

    constructor() {} 

    transform(time: string): string { 
    let split = time.split(':'); 
    let hours = split[0]; 
    let minutes = split[1]; 
    return (parseInt(hours) * 60 + parseInt(minutes)).toString(); 
    } 
} 


@Pipe({name: 'minutesToTime'}) 
export class TimeConversionPipe implements PipeTransform { 

    constructor() {} 

    transform(minutes: string): string { 
    let min = parseInt(minutes); 
    let hours = Math.floor(min/60); 
    let remainingMinutes = min % 60; 
    return hours + ":" + remainingMinutes; 
    } 
} 

希望有所幫助。

+0

我不知道分裂,這將是有一定的幫助,但我仍然在尋找一個更簡單的方法,如果有任何。 –

+0

你正在處理一個Date對象還是一個字符串? – mikias

+0

只是一個普通的字符串。 –