Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将日期与“最小值”和“最大值”不起作用进行比较_Angularjs_Datetime - Fatal编程技术网

Angularjs 将日期与“最小值”和“最大值”不起作用进行比较

Angularjs 将日期与“最小值”和“最大值”不起作用进行比较,angularjs,datetime,Angularjs,Datetime,我试图将日期与最小值和最大值进行比较,结果出现了一些问题 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)

我试图将日期与最小值和最大值进行比较,结果出现了一些问题

        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;
var dueDate=moment().add(10,'年').format('DD-MM-YYYY');
var minDate=moment().add(-10,'年').format('DD-MM-YYYY');
var checkValidDate=函数(日期){
if(Date.parse(Date)>minDate | | Date.parse(Date)
我总是得到零


谢谢!

您需要将日期字符串更改为日期对象,所以您需要这样做

new Date(minDate)
但日期构造函数假定minDate的格式为“MM-DD-YYYY”,而现在的格式为“DD-MM-YYYY”

var dueDate=moment().添加(10,'年').格式('MM-DD-YYYY');
var minDate=moment().add(-10,'年').format('MM-DD-YYYY');
var checkValidDate=函数(日期){
日期=时刻(日期“DD-MM-YYYY”)。格式(“MM-DD-YYYY”);
如果(新日期(Date)>新日期(minDate)| |新日期(Date)<新日期(dueDate))返回日期;
返回null;
}
您应该首先使用矩()将日期对象转换为字符串,然后使用format()更改格式

var checkValidDate=函数(日期){
date=moment(date).format('DD-MM-YYYY');//假设参数date是日期类型的对象
如果(日期>minDate | |日期
我浏览了您发布的代码,发现您使用了两种不同的方法来比较值,即一种是矩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);
var dueDate=moment().add(10,'年').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,'年').format('DD-MM-YYYY');console.log(testDate)
var checkValidDate=函数(testDate){
if(testDate>minDate | | testDate
结果:“26-04-2020”
这将以字符串格式返回日期,而不是日期格式。您需要以这种方式传递相同的日期
新日期(04+'/'+26+'/'+20)
这将为您提供输出:Sun Apr 26 2020 00:00:00 GMT+0530(印度标准时间)


谢谢

您能在这两个对象上强制转换日期对象并按值进行比较吗?
新建日期(minDate)。valueOf()
?尝试强制转换这两个对象。在我的情况下,无法理解如何使用的值
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);