2014-02-20 43 views
-1

我想格式化将由用户输入的时间。我正在显示一个用户可以输入时间的文本框。我想格式化这样的数字:如何使用JavaScript格式化时间?

如果用户输入1,格式是这样的:如果用户输入11,这样的格式

1.00 

11.00 

如果用户输入11: 03,格式是这样的:

11.03 

如果用户输入111,格式是这样的:

1.11 

如果用户输入1111,格式如下:

11.11 

如何做到这一点?

+1

你的第4格式看起来不合逻辑。 – KunJ

+0

@KunJ这不是不合逻辑的,这是一个规范。 –

+0

@dystroy对不合逻辑的词表示歉意,我想说111可以是11.10以及1.11 – KunJ

回答

2

我没有看到任何神奇的解决方案,你必须编程你看到的逻辑。

这会做:

function a(s){ 
    return '00'.slice((''+s).length)+s; 
} 
function f(n){ 
    var bc = Math.floor(n/100), ac = n%100; // gets the two parts 
    if (!bc) { // adjust if there's no right part 
    bc = ac; 
    ac = 0; 
    } 
    return a(bc)+'.'+a(ac); 
} 

测试:

[1, 11, 103, 1103, 1111].forEach(function(n){ 
    console.log(n, '->', f(n)); 
}); 

日志

1 "->" "01.00" 
11 "->" "11.00" 
103 "->" "01.03" 
1103 "->" "11.03" 
1111 "->" "11.11" 
0
The below code is the working solution. 

<html> 
<head> 
<title>time</title> 
<script type="text/javascript"> 
function get() 
{ 
var t=prompt("ente time"); 
var result=1.00; 
if(t.length==4) 
{ 
result=(parseFloat(t)/100)*1.00; 

} 
else if(t.length==3) 
result=(parseFloat(t)/100)*1.00; 
else if(t.length==2) 
result=t.concat(".00"); 
else if(t.length==1) 
    result=t.concat(".00"); 

else if(t.indexOf(":")!=-1) 
{ 
    result=t.substring(0,2)+"."+t.substring(3,5); 
} 
alert(result); 

} 
</script> 
</head> 

<body onLoad="get()"> 

</body> 
</html>