2016-01-14 21 views
1

嗨,大家好我有问题parseInt行为像字符串行为。 更可能是愚蠢的我做错了。 问题是代码JavaScript,添加2个变量,我已经使用parseInt在一起输出像一个字符串

function getNewDate() 
{ 
    var dateEntered = document.getElementById('Temp').value; //input got from a form 
    var daysEntered = document.getElementById('Temp1').value ; //input got from a form 

    var month = dateEntered.charAt(5)+dateEntered.charAt(6);           //creating month 
    var date = dateEntered.charAt(8)+dateEntered.charAt(9);            //date 
    var year = dateEntered.charAt(0)+dateEntered.charAt(1)+dateEntered.charAt(2)+dateEntered.charAt(3); //and year from input 
    var newDate = 0 ; 
    parseInt(month) ;   //making the below variables integers for calculations 
    parseInt(daysEntered) ; 
    parseInt(date) ; 
    parseInt(newDate) ; 
    var newFullDate = "" ; 

    if(month == 01) 
    { 
    newDate = date + daysEntered ; //if i enter 01/01/2016 as the date 
    if(newDate > 31)    //and 5 for days entered 
    {        //when i piece together the newFullDate 
     month = 02 ;     //it outputs like 2016-01-015 
     date = 0 ; 
     daysEntered = newDate - 31 ; 
    } 
    else 
    { 
     newFullDate = ""+year +"-"+"01"+"-"+newDate ; 
     document.getElementsByName('output')[0].value= newFullDate; 
    } 
    } 
+0

您需要在指定'parseInt函数(月)'等,以一个变量 在'VAR month = parseInt(dateEntered.charAt(5)+ dateEntered.charAt(6));' – estherz

+0

在'parseInt(month)'行放置一个断点。执行后,检查'month'的值,你会看到它没有改变。这应该给你一个很好的线索。 –

回答

2

你必须从parseInt函数的值赋给变量的注释区域。

month = parseInt(month) ; 
daysEntered = parseInt(daysEntered) ; 
date = parseInt(date) ; 
newDate = parseInt(newDate) ; 
+0

完美的贾森谢谢你。 –

0

parseInt()不会直接影响变量的值。它只返回结果,所以你需要将它保存到变量中。

例如:

var month = dateEntered.charAt(5)+dateEntered.charAt(6); 
month = parseInt(month); 

或者你也可以做到既在同一行:

var month = parseInt(dateEntered.charAt(5)+dateEntered.charAt(6)); 
相关问题