2017-01-19 187 views
1

我使用了一個名爲jQRnageSlider的插件,並嘗試獲取滑塊中顯示的日期和時間標籤,但是當我向後滾動滑塊至去年時,12月份最終顯示爲11。如果我不回,去年滾動如何從當前日期前一個月獲取日期,當前日期是一月?

enter image description here

正常情況。

enter image description here

它躍升至2016年11月立即

這應該是日期格式問題的問題。誰能幫忙?

$(".date-range-slider").dateRangeSlider({  
    ... 

    formatter: function(val){ 
    var days = ('0' + val.getDate()).slice(-2), 
    month = ('0' + val.getMonth() + 1).slice(-2), 
    year = val.getFullYear(), 
    hour = ('0' + val.getHours()).slice(-2), 
    min = ('0' + val.getMinutes()).slice(-2); 
    return days + "-" + month + "-" + year + " " + hour + ":" + min; 
    } 
}); 
+0

如果使用日期/時間函數很多在您的應用程序,我建議在看moment.js - 它會爲你解決很多這些問題。 – MickRip

+1

問題可能出現在這裏'('0'+ val.getMonth()+ 1)',因爲首先出現字符串連接'('0'+ month)'這會導致字符串,然後您附加另一個'1'串。你可能想要'('0'+(val.getMonth()+ 1))''。 – Rafael

+0

你的函數可以正常工作:https://jsfiddle.net/86hdnnno/ 也許「val」參數沒有12月份的月份11? – Potray

回答

0

的問題是該行:

你想數學概括並不爲字符串,所以你應該做的:

month = ('0' + (val.getMonth() + 1)).slice(-2)

檢查代碼段看看你的代碼實際返回:

var val = new Date(); 
 
document.write('0' + val.getMonth() + 1)

什麼返回修改後的版本:

var val = new Date(); 
 
document.write('0' + (val.getMonth() + 1))

+0

是的,我也發現了我自己。一個愚蠢的錯誤。不管怎麼說,還是要謝謝你 –

相關問題