2017-01-19 182 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

是的,我也发现了我自己。一个愚蠢的错误。不管怎么说,还是要谢谢你 –

相关问题