將時間轉換爲特定時間格式的最簡單方法是什麼? 例如,如何將340
分鐘轉換爲hh:mm
的格式? 以及如何取回hh:mm
的分鐘數? 是否有可能通過moment.js來做到這一點?將時間轉換爲特定格式,相反,Typescript
320 minutes -> 05:20
05:20 -> 320 minutes
將時間轉換爲特定時間格式的最簡單方法是什麼? 例如,如何將340
分鐘轉換爲hh:mm
的格式? 以及如何取回hh:mm
的分鐘數? 是否有可能通過moment.js來做到這一點?將時間轉換爲特定格式,相反,Typescript
320 minutes -> 05:20
05:20 -> 320 minutes
嘗試
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>
我不確定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;
}
}
希望有所幫助。
認真沒有其他更簡單的方法? –
你還需要什麼? Momentjs不提供功能,沒有什麼叫'魔法'! –