我看过很多关于小时数小时到几小时的帖子:分钟,但我发现这些工作的时间不超过一天。
我正在使用以下内容与moment.js ..
Mar 27, 2017 2:39:01 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Page title is: Google
但这不会超过24小时,例如我有一个小时的时间来代表超过一年。
有没有办法处理这个问题,还有当前区域设置的格式(正如应该做的那样)
提前感谢您提供任何帮助
答案 0 :(得分:0)
我不知道Moment.js是什么,我不确定你想要达到的目标。但是,如果我理解得很清楚,您希望能够将十进制小时数转换为日期。
我可以为您提供此代码:
function formatHours(decimalHours) {
let minutes = decimalHours % 1;
let hours = decimalHours - minutes;
minutes *= 60;
minutes = Math.round(minutes);
if (hours > 24) {
var day = Math.floor(hours / 24);
hours %= 24;
}
let date = new Date();
date.setHours(hours);
date.setMinutes(minutes);
if (day) {
date.setDate(day);
}
console.log(`${date}`);
}
formatHours(24.88);
这将处理最高672.00(28 * 24)的任何小数输入,你可以改进它来处理月份等等。
答案 1 :(得分:0)
正如评论者问的那样,你在寻找什么样的格式?
我建议添加moment-duration-format插件,它似乎只是为您的用例编写的。然后你可以简单地写:
function formatHours (decimalHours) {
return moment.duration.format(hoursDecimal, 'hours').format('D:HH:mm');
};
答案 2 :(得分:0)
//这是针对angular.js的
list:any = [“ 9:12”,“ 4:35”,“ 9:11”]; //正确声明
for(var i=0 ; i < 3; i++){
var parts = this.list[i].split(":");;
var hours = parseInt(parts[0]) ;
var minutes = parseInt(parts[1]);
this.a = moment.duration(this.a._data.hours,'hours').add(hours,'hours').add(this.a._data.minutes,'minutes').add(minutes,'minutes');
}
var totalHours = (24 * this.a._data.days) + this.a._data.hours ;
var total = totalHours + ":" +this.a._data.minutes;
}