我试图将日期与最小值和最大值进行比较,然后出现问题。
var dueDate = moment().add(10, 'years').format('DD-MM-YYYY');
var minDate = moment().add(-10, 'years').format('DD-MM-YYYY');
var checkValidDate = function(date) {
if (Date.parse(date) > minDate || Date.parse(date) < dueDate) return date;
return null;
我总是变空
谢谢!
答案 0 :(得分:0)
您需要将日期字符串更改为日期对象,因此您需要执行
new Date(minDate)
但是Date构造函数假设minDate的格式为“MM-DD-YYYY&#39;现在它在DD-MM-YYYY&#39;。
var dueDate = moment().add(10, 'years').format('MM-DD-YYYY');
var minDate = moment().add(-10, 'years').format('MM-DD-YYYY');
var checkValidDate = function(date) {
date = moment(date, 'DD-MM-YYYY').format('MM-DD-YYYY');
if (new Date(date) > new Date(minDate) || new Date(date) < new Date(dueDate)) return date;
return null;
}
&#13;
或者保持每个日期,只需比较
答案 1 :(得分:0)
您应该首先使用moment()将日期对象转换为字符串,然后使用format()更改格式;
@Ignore
答案 2 :(得分:0)
我浏览你发布的代码,发现你使用两种不同的方法比较这些值,一种是时刻js,另一种是jquery Date.parse函数。
var dueDate = moment().add(10, 'years').format('DD-MM-YYYY');console.log(dueDate)
var minDate = moment().add(-10, 'years').format('DD-MM-YYYY'); console.log(minDate)
var testDate = moment().add(2, 'years').format('DD-MM-YYYY'); console.log(testDate)
var checkValidDate = function(testDate) {
if (testDate > minDate || testDate < dueDate){ return testDate} else
return null;
};
checkValidDate(testDate);
结果:&#34; 26-04-2020&#34;
这将以字符串格式返回日期,而不是日期格式。你需要以这种方式传递相同的新日期(04 +&#39; /&#39; + 26 +&#39; /&#39; + 20)
这将给你产出:Sun Apr 26 2020 00:00:00 GMT + 0530(印度标准时间)
由于