我从this site获取了以下函数并将其插入到我的代码中,以显示基于毫秒参数的用户友好时间字符串。
为什么这个功能不起作用?
function getTimeFromMillis(millis)
{
milliSecs = millis;
msSecs = (1000)
msMins = (msSecs * 60)
msHours = (msMins * 60)
numHours = Math.floor(milliSecs/msHours)
numMins = Math.floor((milliSecs - (numHours * msHours)) / msMins)
numSecs = Math.floor((milliSecs - (numHours * msHours) - (numMins * msMins))/ msSecs)
if (numSecs < 10){
numSecs = "0" + numSecs.toString
}
if (numMins < 10){
numMins = "0" + numMins.toString
}
resultString = numHours + ":" + numMins + ":" + numSecs
return resultString;
}
如果我从调用函数传递一个毫秒值,我得到这个:
0:0function toString() { [native code] }:0function toString() { [native code] }
答案 0 :(得分:7)
您忘记了对“toString”的调用中的()
。
编辑 - 抱歉不得不离开一秒钟。正如@Gareth评论的那样,对“toString”的引用在语法上是有效的,因为它们只是对函数的引用。因此,解析器对您的代码没有任何问题。当你隐式地将这些引用转换为字符串时,出了什么问题。
如果您只是为每次通话添加()
,它应该可以更好地运作。或者,正如您链接到的那个页面指出了一些更低的帖子,您根本不需要.toString()
。