gpt4 book ai didi

javascript - AngularJS 中的自定义验证比较两个日期

转载 作者:行者123 更新时间:2023-12-03 01:48:08 26 4
gpt4 key购买 nike

我有两个字段hiring_dateexpiry_date我正在使用 Angular UI 日期选择器。如果雇用日期晚于到期日期

,我想验证表单

这是我的代码:逻辑没问题,但我如何将其设置为错误 false

<small ng-show="formStep1.expiry_date.$invalid && 
formStep1.expiry_date.$touched " class="errorMsg ">
Please enter valid date (YYYY-MM-DD).</small>

<small
ng-show="formStep1.expiry_date.$modelValue < formStep1.hiring_date.$modelValue"
class="errorMsg ">
Expiry Date should not be a older than Target Hiring Date.</small>

我根据两个输入日期得出正确和错误

formStep1.expiry_date.$modelValue < formStep1.hiring_date.$modelValue

是否可以从 View 端进行验证..?

消息显示正常,但我希望字段 expiry_date 应该像必需的那样。

我尝试过类似的方法但不起作用:

<input datepicker-options="dateOptions" 
type="text"
class="form-control"
ng-model="expiry_date"
is-open="config2.opened"
uib-datepicker-popup="yyyy-MM-dd"
close-text="Close"
name="expiry_date"
show-button-bar="false"
ng-required="formStep1.expiry_date.$modelValue < formStep1.hiring_date.$modelValue ? 'true': 'false'" />

最佳答案

我建议使用 momentJs用于任何类型的日期操作。汤姆·斯科特可以向您解释原因 here 。无论如何,对于您的特定情况,有一个 moment-angular可以这样使用的库:

/* controller declaration */.('$scope', 'moment', function($scope, moment) {
$scope.isDateBefore = function(firstDate, secondDate) {
return moment(firstDate).isBefore(secondeDate);
}
})


<small
ng-show="isDateBefore(formStep1.expiry_date.$modelValue, formStep1.hiring_date.$modelValue)"
class="errorMsg ">

您可以了解有关 isBefore 函数的更多信息 on the official momentjs doc

关于javascript - AngularJS 中的自定义验证比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50538341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com