回答
嘗試這樣:
app.filter('secondsToDateTime', [function() {
return function(seconds) {
return new Date(1970, 0, 1).setSeconds(seconds);
};
}])
HTML:
<b>{{seconds | secondsToDateTime | date:'HH:mm:ss'}}</b>
我認爲這是沒有必要的自定義過濾器
<b>{{hours}}{{seconds | date:':mm:ss'}}</b>
function Scoper($scope) {
$scope.seconds = '79000';
$scope.hours = parseInt($scope.seconds/3600);
}
自定義過濾器可能不是必需的,但第二個需要在不同頁面上使用這個邏輯,最少額外的時間投入以獲得過濾器或指令就可以得到回報。你可以把它放在根範圍上,但這是你應該忽略的另一種代碼。 – Mattygabe 2015-08-27 00:26:12
manzapanza的一個如果秒數少於86400(1天),nsWS纔有效。日期對象需要完全爲零。另外,最好還是返回實際的日期對象,以便angularjs不必再次創建它。
app.filter('secondsToDateTime', function() {
return function(seconds) {
var d = new Date(0,0,0,0,0,0,0);
d.setSeconds(seconds);
return d;
};
});
和
<b>{{seconds | secondsToDateTime | date:'HH:mm:ss'}}</b>
編輯:如果你想要小時上面去24沒有包裝,以天最好不要使用日期:
app.filter('secondsToTime', function() {
function padTime(t) {
return t < 10 ? "0"+t : t;
}
return function(_seconds) {
if (typeof _seconds !== "number" || _seconds < 0)
return "00:00:00";
var hours = Math.floor(_seconds/3600),
minutes = Math.floor((_seconds % 3600)/60),
seconds = Math.floor(_seconds % 60);
return padTime(hours) + ":" + padTime(minutes) + ":" + padTime(seconds);
};
});
和
<b>{{seconds | secondsToTime}}</b>
通過天@manzapanza溶液:
$scope.duration_for = function(seconds){
if(!seconds) return
var duration = new Date(1970, 0, 1).setSeconds(seconds)
var mask = 'HH:mm'
if(seconds >= 86400){
mask = 'd days,' + mask
}
return $filter('date')(duration, mask);
}
鑑於:
{{duration_for(100500)}}
app.filter('formatTimer', function() {
return function (input) {
function z(n) { return (n < 10 ? '0' : '') + n; }
var seconds = input % 60;
var minutes = Math.floor(input % 3600/60);
var hours = Math.floor(input/3600);
return (z(hours) + ':' + z(minutes) + ':' + z(seconds));
};
將輸出:2點04分14秒
嘗試這種情況:
app.filter('secondsToHHmmss', function($filter) {
return function(seconds) {
return $filter('date')(new Date(0, 0, 0).setSeconds(seconds), 'HH:mm:ss');
};
})
HTML:
<b>{{seconds | secondsToHHmmss}}</b>
我需要放棄'[]'使這項工作,並分秒爲1000,因爲我在處理毫秒 – 2016-01-21 05:55:02
謝謝。剛剛修改。 – endru 2016-01-22 04:42:04
- 1. Angularjs通過過濾器得到indexOf
- 2. 過濾器在angularjs
- 3. AngularJS limitTo過濾器
- 4. Convert-Inline ng-重複過濾器到自定義過濾器 - angularjs
- 5. 過濾器時間值是
- 6. Firebase時間戳過濾器
- 7. 過濾器MySQL時間戳
- 8. 時間流過濾器
- 9. 時間範圍過濾器
- 10. 時間過濾器不適用於60以上但低於70秒的時間
- 11. angularjs過濾器沒有過濾multipe過濾器的值
- 12. $過濾器沒有得到在angularjs
- 13. 基於http的Angularjs過濾器得到
- 14. Angularjs使用過濾器和$ http服務的時間
- 15. 如何使用AngularJS過濾器格式化時間?
- 16. 如何使用AngularJS日期過濾器顯示時間
- 17. AngularJS貨幣過濾器 -
- 18. Angularjs過濾器或條件
- 19. Angularjs過濾器錯誤
- 20. Angularjs JSON與過濾器
- 21. AngularJs過濾器事件?
- 22. AngularJS過濾器問題
- 23. AngularJS過濾器或組合
- 24. AngularJs過濾器inverval日期
- 25. AngularJS過濾器配置
- 26. AngularJS - 自己的過濾器
- 27. AngularJS:在過濾器更換
- 28. 過濾器angularjs不工作
- 29. Angularjs過濾器Json數據
- 30. AngularJS過濾器語法
也許'237'需要改變,以'2:37'?爲什麼'3:42:54'?變化的邏輯是什麼? – 2015-02-08 13:52:08
237是秒。 – 2015-02-08 14:02:19
你的237秒轉換爲2:34的邏輯不清楚。 237秒是3分57秒(60 * 3 + 57 = 237秒)。那麼你如何在2:34到達?或2:34應該是一天中的時間(下午2:34)?這些都沒有意義,直到你可以解釋你如何將237秒翻譯成2:34或3:42:54的邏輯。 – 2015-02-08 17:11:57