JS时间格式格式化问题

最近看到有个线上的练习题,
题目连接:http://www.mhero.com/javascri...
关注的是第二个日期对象 Date这节的内容,在线显示当前的系统时间。
它的核心代码不多,
HTML:

<div class="box box-re">
<img src="js001/images/0.png" />
<img src="js001/images/0.png" />
:
<img src="js001/images/0.png" />
<img src="js001/images/0.png" />
:
<img src="js001/images/0.png" />
<img src="js001/images/0.png" />
</div>

JS:

function toDou (n)
{
    if(n<10)
    {
        return '0'+n;
    }
    else
    {
        return ''+n;
    }
}
var aImg2=oDiv2.getElementsByTagName('img');
    function tick ()
    {
        var oDte3=new Date;
        var aStr2=toDou(oDte3.getHours())+toDou(oDte3.getMinutes())+toDou(oDte3.getSeconds());
        for(var i=0;i<aStr2.length;i++)
        {
            aImg2[i].src='js001/images/'+aStr2[i]+'.png';
        }
    }
    setInterval(tick,1000);
    tick();

这里核心处理时间的代码:
aStr2=toDou(oDte3.getHours())+toDou(oDte3.getMinutes())+toDou(oDte3.getSeconds());
将时间字符串经过toDou函数处理了,这里对他的函数toDou有点看不懂,大致应该是判断小时,分钟,秒数是两位还是单独一位。如果是单独一位的话返回的就是0加上后面的个位数图片。如果是两位数返回的是''+本身的时间字符串。
为什么要加一个''?

阅读 3.2k
4 个回答

因为Date.getHours/getMinutes/getSecondes 返回值的类型是number

加一个''是为了转换成string进行运算........

另外想要获取当前时间的string,其实可以用Date.toLocaleTimeString

''+是转化为string的意思

”是字符串的拼接的意思。

var d = new Date();
typeof d.getHours(); // number
typeof (d.getHours() + ''); // string

时、分、秒返回都是 number 类型,+ '' 是为了转为字符串,如果不转,则 aStr2 得到的就会是时分秒相加的和
后面的 aStr2.length 也会报错

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题