Javascript 获取两个日期之间的日期重复指定日期范围之外的错误日期
我有下面的代码,它返回两个给定日期之间的日期,但是,我得到的日期超出了指定的范围 我需要返回格式化字符串,如:Javascript 获取两个日期之间的日期重复指定日期范围之外的错误日期,javascript,Javascript,我有下面的代码,它返回两个给定日期之间的日期,但是,我得到的日期超出了指定的范围 我需要返回格式化字符串,如:12/01/2015或01/01/2015。请注意添加的前导零。如果我输入一个日期范围,如:2015年1月12日-2016年1月31日,我会得到一个从2015年1月11日开始的日期 如何仅获取给定范围内的代码 var getDates = function(startDate, endDate) { var dates = [], currentDate = st
12/01/2015
或01/01/2015
。请注意添加的前导零。如果我输入一个日期范围,如:2015年1月12日-2016年1月31日
,我会得到一个从2015年1月11日开始的日期
如何仅获取给定范围内的代码
var getDates = function(startDate, endDate) {
var dates = [],
currentDate = startDate,
addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
};
while (currentDate <= endDate) {
dates.push(('0' + currentDate.getMonth()+ 1 ).slice(-2) + '/' +
('0' + currentDate.getDate()).slice(-2) + '/' + currentDate.getFullYear());
currentDate = addDays.call(currentDate, 1);
}
return dates;
};
var getDates=函数(开始日期、结束日期){
var日期=[],
当前日期=开始日期,
addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
};
而(currentDate更改此行
dates.push(('0' + currentDate.getMonth()+ 1 ).slice(-2) + '/' +
('0' + currentDate.getDate()).slice(-2) + '/' + currentDate.getFullYear());
到
首先添加1
,然后添加0
,然后添加slice
您还需要使用newdate()
将startDate和endDate解析为日期
完整的代码应该如下所示:
var getDates = function(startDate, endDate) {
var dates = [],
currentDate = new Date(startDate),
endDate = new Date(endDate),
addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
};
while (currentDate <= endDate) {
dates.push(('0' + (currentDate.getMonth() + 1)).slice(-2) + '/' +
('0' + currentDate.getDate()).slice(-2) + '/' + currentDate.getFullYear());
currentDate = addDays.call(currentDate, 1);
}
return dates;
};
console.log(getDates("12/06/2015", "01/31/2016"));
var getDates=函数(开始日期、结束日期){
var日期=[],
currentDate=新日期(开始日期),
endDate=新日期(endDate),
addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
};
while(currentDate您可以使用矩库()。在这种情况下,此函数类似于
var start = moment('2015-12-01');
var end = moment('2016-01-01');
var getDates = function(start, end) {
var dates = [];
while (start <= end) {
dates.push(start.format('MM/DD/YYYY'));
start.add(1, 'd');
}
return dates;
}
var dates = getDates(start, end);
console.log(dates);
var开始=力矩('2015-12-01');
var端=力矩('2016-01-01');
var getDates=函数(开始、结束){
var日期=[];
while(开始,为什么不使用moment.js?它非常容易使用,并且允许灵活地操作日期如果安装了jQuery ui,则可以使用以下命令将日期对象转换为字符串:$.datepicker.formatDate(“mm dd yy”,新日期(2015,01,12));
(在第二个参数中传递日期对象)这使得代码分配更清晰,在处理日期时更不容易混淆。我支持提名moment.js作为候选解决方案。我在前面已经回答了这个问题-。如果不能选择额外的库,我想指出,你可以从他们那里获得解决方案,因为它是一个开源库。我喜欢矩框架。我已经在我的应用程序中与require JS一起使用了它。但是,我不知道我能做的比我已经做的更多。谢谢你指出这一点。谢谢!!我将以此作为我努力的答案,因为这是我的初衷,但我想我会跳上矩.JS
火车。:)
var start = moment('2015-12-01');
var end = moment('2016-01-01');
var getDates = function(start, end) {
var dates = [];
while (start <= end) {
dates.push(start.format('MM/DD/YYYY'));
start.add(1, 'd');
}
return dates;
}
var dates = getDates(start, end);
console.log(dates);