日期:2014-05-16  浏览次数:20316 次

把字符串转换成数字我们有些可以有些不对?
下面js为什么会提示为0,如果把text里的数据改成2012-07-03就没有问题。也就是把里面的月份改成08和09就会有问题,这是为什么?
<html>
<script type="text/javascript">
function getdate()
{
var year9=(document.getElementById("TextBox1").value);
var year8=year9.substring(0,4); 
var month8=year9.substring(5,7); 
var day=year9.substring(8,10); 
var year = parseInt(year8);
var month = parseInt(month8);
alert(month);

</script>
<head>
    <title>a</title>
</head>
<body>
  <input type="text" id="TextBox1" value="2019-09-03"><br />
<br />
<input type="button" onClick="getdate()" value="调用">
  
</body>
</html>

------解决方案--------------------
parseInt() 方法有个参数说明数字的进制值。如果没有提供,则前缀为 '0' 的字符串被当作八进制。
八进制中没有8和9,所以8和9就被忽略了。
只要说明是十进制就行了
var year = parseInt(year8,10);
var month = parseInt(month8,10);