2014-11-03 82 views
0

在我的應用程序中,我想瀏覽特定日期。第一次點擊我得到我需要的日期,但第二次點擊它保持不變。每次點擊更新的日期

var getDate = function() { 

    var d = new Date(); 
    var month = d.getMonth()+1; 
    var day = d.getDate(); 
    var yesterday = d.getDate()-1; 
    var tomorrow = d.getDate()+1; 

    var output = d.getFullYear() + '/' + 
     ((''+month).length<2 ? '0' : '') + month + '/' + 
     ((''+day).length<2 ? '0' : '') + day; 



    $('#yesterday, #tomorrow').click(function() { 
     if (this.id === 'yesterday') { 
     var output = d.getFullYear() + '/' + 
      ((''+month).length<2 ? '0' : '') + month + '/' + 
      ((''+day).length<2 ? '0' : '') + yesterday; 
     $("#today_date").text(output); 
     } 
     else if (this.id === 'tomorrow') { 
     var output = d.getFullYear() + '/' + 
      ((''+month).length<2 ? '0' : '') + month + '/' + 
      ((''+day).length<2 ? '0' : '') + tomorrow; 
     $("#today_date").text(output); 
     } 
    }); 
    $("#today_date").text(output); 

}; 

jsfiddle example herehttp://jsfiddle.net/7LXPq/800/

+0

你想在每次點擊時保持遞增/遞減日期? – Ravi 2014-11-03 09:36:18

+0

是每次點擊去+1或-1日 – WilsonG 2014-11-03 09:38:39

+0

然後你做錯了它,你也只是遞減的日子將會去<0 or > 31. – Ravi 2014-11-03 09:47:47

回答

0

每次點擊yesterdaytomorrow你需要更新你的當前d日期。否則,你總是被困在今天的日期。

試圖保持儘可能多的原始代碼,你可以重構它是這樣的:

var getDate = function() { 

    var d = new Date(); 

    var formatDate = function() { 
    var month = d.getMonth()+1; 
    var day = d.getDate(); 
    var output = d.getFullYear() + '/' + 
     ((''+month).length<2 ? '0' : '') + month + '/' + 
     ((''+day).length<2 ? '0' : '') + day; 

    return output; 
    }; 

    $('#yesterday, #tomorrow').click(function() { 
    d = new Date(d); 
    if (this.id === 'yesterday') { 
     d.setDate(d.getDate() - 1); 
    } 
    else if (this.id === 'tomorrow') { 
     d.setDate(d.getDate() + 1); 
    } 
    $("#today_date").text(formatDate()); 
    }); 
    $("#today_date").text(formatDate()); 
}; 

demo

+0

感謝您的回答。 – WilsonG 2014-11-03 09:52:03

0

您可以使用此代碼:如果你需要

var getDate = function() { 

    var d = new Date(); 

    var output = d.getFullYear() + '/' + 
    (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth()+1) + '/' + 
    (d.getDate() < 10 ? '0' : '') + d.getDate(); 

    $('#yesterday, #tomorrow').click(function() { 
     if (this.id === 'yesterday') { 
      d.setDate(d.getDate()-1); 
      var output = d.getFullYear() + '/' + 
      (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth()+1) + '/' + 
      (d.getDate() < 10 ? '0' : '') + d.getDate(); 
      $("#today_date").text(output); 
     } 
     else if (this.id === 'tomorrow') { 
      d.setDate(d.getDate()+1); 
      var output = d.getFullYear() + '/' + 
      (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth()+1) + '/' + 
      (d.getDate() < 10 ? '0' : '') + d.getDate(); 
      $("#today_date").text(output); 
     } 
    }); 
    $("#today_date").text(output); 

}; 

要保留當前日期,您可以在使用之前製作d變量副本