简体   繁体   中英

Javascript: Adding digits without Sum?

I'm basically trying to get the hours, minutes, and seconds of a date in javascript to read like this: '123456'. I am doing this with the following code:

var date;
date = new Date();
var time = date.getUTCHours() + date.getUTCMinutes() + date.getUTCSeconds();

Only problem is when I add them together, I keep getting the sum, not a nice line of 6 numbers like I want.

Any Suggestions?

Convert the numerical value to a string:

var date;
date = new Date();
var time = date.getUTCHours().toString() + date.getUTCMinutes().toString() + date.getUTCSeconds().toString();

If you want it to always be 6 characters long, you need to pad the values if they are < 10. For example:

var hours = date.getUTCHours();
if (hours < 10)
     hours = '0' + hours.toString();
else hours = hours.toString();

var mins = date.getUTCMinutes();
if (mins < 10)
     mins = '0' + mins.toString();
else mins = mins.toString();

var secs = date.getUTCSeconds();
if (secs < 10)
     secs = '0' + secs.toString();
else secs = secs.toString();

var time = hours + mins + secs;
var time = '' + date.getUTCHours() + date.getUTCMinutes() + date.getUTCSeconds();

edit: To account for zero-padding you can do something like:

function format(x){
    if (x < 10) return '0' + x;
    return x;
}

var date;
date = new Date();
var time = '' + format(date.getUTCHours()) + format(date.getUTCMinutes()) + format(date.getUTCSeconds());

That's happening because those functions return an Integer type. If you want to add the digits themself togheter, try converting every variable to string using toString()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM