我的最终功能。
var timeToString = function(time)
{
if (time <= 0)
{
return '0';
}
else
{
var s = '';
var d;
var dateObj = { '_86400' : 'วัน', '_3600' : 'ชั่วโมง', '_60' : 'นาที', '_1' : 'วินาที' };
for ( key in dateObj )
{
console.log( time + ' ' + key )
var suffix = dateObj[key];
var totaltime = key;
totaltime = totaltime.substr(1)
if ( time >= totaltime )
{
time -= d = time - time % totaltime;
s += ( ( d / totaltime) + ' ' + suffix + ' ');
}
}
}
return s;
}
document.write( timeToString(79) )
结果:1 นาที 19 วินาที
通过在我的对象的键值中添加前缀来修复它,我的修复效果很好。
这是我的第一个代码
var timeToString = function(time)
{
if (time <= 0)
{
return '0';
}
else
{
var s = '';
var d;
var dateObj = { '86400' : 'วัน', '3600' : 'ชั่วโมง', '60' : 'นาที', '1' : 'วินาที' };
for ( key in dateObj )
{
var suffix = dateObj[key];
var totaltime = parseInt(key);
if ( time >= totaltime )
{
time -= d = time - time % totaltime;
s += ( ( d / totaltime) + ' ' + suffix + ' ');
}
}
}
return s;
}
结果:79 วินาที
我不需要那样显示。
结果:1 นาที 19 วินาที
没错。
在两个函数之间看一下“dateObj”的区别。
如果key == number
的类型,如何在for循环中修复对象重新排序答案 0 :(得分:0)
据我所知,你需要格式化分钟。 试试这个例子:
function formatTime(minutes) {
var hh = Math.floor(minutes/60);
var mm = minutes%60;
var result = "";
if (hh > 0)
result += hh + " hours ";
if (mm > 0)
result += mm + " minutes";
return result;
}
然后致电:
console.log(formatTime(219));
// 3 hours 39 minutes
答案 1 :(得分:0)
在我看来问题实际上是在行
totaltime = totaltime.substr(1)
你改为
var totaltime = parseInt(key);
我不知道你想在这里比较什么,打赌它似乎与你完全不同。确保你想要比较什么以及如何做。什么time
和谁发送它?你想如何将整数与字符串进行比较?等等