2014-02-20 6 views
-1

Я хочу отформатировать время, которое будет введено пользователем. Я показываю одно текстовое поле, в котором пользователь может ввести время. Я хочу, чтобы отформатировать число так:Как форматировать время с помощью javascript?

Если пользователь вводит 1, формат, как это:

1.00 

Если пользователь вводит 11, формат, как это:

11.00 

Если пользователь вводит 11: 03, формат, как это:

11.03 

Если пользователь вводит 111, формат, как это:

1.11 

Если пользователь вводит 1111, формат, как это:

11.11 

Как это сделать?

+1

Ваш четвёртый формат выглядит нелогично. – 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> 
Смежные вопросы