javascript - 将函数应用于函数(难以解释)
问题描述
首先,我想为这个愚蠢的问题道歉。
请看下面的代码:
var dt = new Date(t*1000);
var m = "0" + dt.getMinutes();
输出时,它可以为我们提供以下结果之一,具体取决于t
变量(又名 unix 时间):
m = 054 // 54 minutes
m = 03 // 3 minutes
如您所见,如果分钟数过多,格式就会损坏。为了解决这个问题,我们必须调用一个函数来只保留最后两个字符。为此,我们将使用以下代码:
var m = "0" + dt.getMinutes();
m = m.substr(-2);
哪个可以输出:
m = 54 // 54 minutes
m = 3 // 03 minutes
好的!我们解决了问题,对吧?好吧,我认为连续两次设置变量是愚蠢的。我试过:
var m = "0" + dt.getMinutes().substr(-2);
但我收到以下错误:
TypeError: dt.getMinutes(...).substr is not a function
有没有一种方法可以做到这一点?
解决方案
Date.getMinutes
返回一个整数,而不是一个字符串,所以你不能调用substr
它。但是通过在"0" + dt.getMinutes()
表达式周围添加括号,你会得到一个字符串值,你可以调用substr
:
var dt = new Date();
var m = ("0" + dt.getMinutes()).substr(-2);
console.log(m);