如何使用javascript格式化时间?

如何使用javascript格式化时间?,javascript,jquery,Javascript,Jquery,我想格式化将由用户输入的时间。我显示了一个文本框,用户可以在其中输入时间。我想将数字格式化如下: 如果用户输入1,格式如下: 1.00 11.00 11.03 1.11 11.11 如果用户输入11,格式如下: 1.00 11.00 11.03 1.11 11.11 如果用户输入11:03,格式如下: 1.00 11.00 11.03 1.11 11.11 如果用户输入111,格式如下: 1.00 11.00

我想格式化将由用户输入的时间。我显示了一个文本框,用户可以在其中输入时间。我想将数字格式化如下:

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

 1.00 
 11.00 
 11.03 
 1.11
11.11
如果用户输入11,格式如下:

 1.00 
 11.00 
 11.03 
 1.11
11.11
如果用户输入11:03,格式如下:

 1.00 
 11.00 
 11.03 
 1.11
11.11
如果用户输入111,格式如下:

 1.00 
 11.00 
 11.03 
 1.11
11.11
如果用户输入1111,格式如下:

 1.00 
 11.00 
 11.03 
 1.11
11.11

如何做到这一点?

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

这样做可以:

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));
});
日志


下面的代码是有效的解决方案

<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>

时间
函数get()
{
var t=提示(“ente时间”);
var结果=1.00;
如果(t.length==4)
{
结果=(t)/100)*1.00;
}
否则如果(t.length==3)
结果=(t)/100)*1.00;
else if(t.length==2)
结果=t.concat(“.00”);
else if(t.length==1)
结果=t.concat(“.00”);
else if(t.indexOf(“:”)=-1)
{
结果=t子串(0,2)+“+t子串(3,5);
}
警报(结果);
}

您的第四种格式看起来不合逻辑。@KunJ它不是不合逻辑的,它是一种规范。@dystroy为不合逻辑的单词道歉,我想说111可以是11.10,也可以是1。11@KunJ这是一个时间,可以选择分钟。让人们输入一个没有分钟的时间或一个有分钟的时间(然后,您需要完整的分钟数),这并不奇怪。