2013-11-14 24 views
1

希望有人可以提供帮助。Javascript功能来恢复过去的6个月,然后用每个月为一个变量

我有以下函数返回最近6个月份名称(I.E六月,七月,八月等),但是,我不能解决我将如何使用每个返回的月份名称作为单独的变量。

我需要这个,这样我就可以将每个月的名称输入到填充过去6个月的表的sql查询中。

任何帮助非常感谢。

function getMonths() 
    { 
     var today = new Date();    
     var month = 1; 
     var currMonth = month-3; 

     var monthArray = new Array("January","February","March","April","May","June", 
       "July","August","September","October","November","December"); 

     var menuMonths = new Array(); 
     var count = 6; 
     var buffer = 10; 

     while(count >0) 
     {   
      if (currMonth < 0) 
       currMonth += 12; 
      if (currMonth >=12) 
       currMonth -= 12; 

      var month = monthArray[currMonth]; 
      menuMonths.push(month); 

      currMonth = currMonth -1; 
      count = count -1; 
     }  
     return (menuMonths.reverse()); 
    } 


console.log (getMonths()); 
+0

作为单独variables'是容易的,但很可能是你不用什么'使用每个返回月份名称。不要这样做。 –

+0

如果您正在运行sql查询,那么您使用的是Server代码。你应该这样做无论是服务器端或数据库方面... –

+0

@Bartdude他可以使用它的客户端,上一个SQLite数据库 – BeNdErR

回答

0
var months = getMonths(); 

for(var i=0, len=months.length; i<len; i++){ 
    var currentMonth = months[i]; 
    alert(currentMonth); 
    //do whatever you want here; 

} 
0

您可以使用Array.slice()

FIDDLEhttp://jsfiddle.net/BeNdErR/NF5Qm/1/

CODE

var monthArray = new Array("January","February","March","April","May","June", 
      "July","August","September","October","November","December"); 

var currMonth = 3; // the current month index, from 1 to 12 
var firstMonth = currMonth - 6; 

if(firstMonth < 0){ //for example if currMonth is January - 0 
    var months = []; 
    months.push(monthArray.slice(12 - Math.abs(firstMonth), 12)); 
    months.push(monthArray.slice(0, currMonth)); 
    alert(months); 
}else{ 
    alert(monthArray.slice(firstMonth, currMonth)) 
} 

作为输出,你仍然有一个数组,所以你可以将它传递给SQL查询,因为它是,例如(SQLite的):

tx.executeSql("SELECT * FROM tablename WHERE month = ? OR month = ? month = ? OR month = ? month = ? OR month = ?;", [slicedMonthArray], successCB, errorCB); 

希望它可以帮助

相关问题