Javascript 填充日期(HH:MM:SS),数字上有null-str.length返回未定义

Javascript 填充日期(HH:MM:SS),数字上有null-str.length返回未定义,javascript,date,string-length,Javascript,Date,String Length,在网络游戏中,我试图以HH:MM:SS格式显示剩余时间- 通过使用以下代码(后端通过WebSocket将剩余的历元时间戳发送为game.expire1和game.expire2): 如上所述,我的简单技巧是根据字符串长度将小时、分钟和秒之间的分隔符设置为:'或:0'- (ss1.length > 1 ? ':' : ':0') 但是,这并没有像预期的那样起作用,因为ss1.length返回undefined,而不是我预期的1或2(我以为Javascript会将我的整数秒数转换为字符串

在网络游戏中,我试图以HH:MM:SS格式显示剩余时间-

通过使用以下代码(后端通过WebSocket将剩余的历元时间戳发送为
game.expire1
game.expire2
):

如上所述,我的简单技巧是根据字符串长度将小时、分钟和秒之间的分隔符设置为
:'
:0'
-

(ss1.length > 1 ? ':' : ':0') 
但是,这并没有像预期的那样起作用,因为
ss1.length
返回
undefined
,而不是我预期的1或2(我以为Javascript会将我的整数秒数转换为字符串?)

作为一种最方便的解决方法,您在这里推荐什么?

怎么样

(ss1 >= 10 ? ':' : ':0')

有关更多选项,请参见。

正在检查的
.length
属性的变量是
数字,此类变量没有该属性。

您可以使用
val.length>1
替代
val>9

日期对象具有获取小时、分钟和秒的方法。 您可以将它们放入一个数组中,必要时添加
0
,并调用
join
方法将数组压缩为字符串,并使用“:”分隔符

var left1=新日期(/*game.expire1-now*/);
var left1hours=left1.getHours();
var left1minutes=left1.getMinutes();
var left1seconds=left1.getSeconds();
var timeArray=[left1hours,left1minutes,left1seconds].map(函数(l1){
return(l1)mm2的值没有更改为字符串类型,它是字符串表达式的结果。因此在比较中
mm2.length>1
mm2是一个数字,数字没有长度属性。
(ss1 >= 10 ? ':' : ':0')