我试过这种方式,但得到错误。这是我的代码。
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
DateTime _dateJoin = DateTime.ParseExact(value.ToString(), "MM/dd/yyyy", null);
DateTime _CurDate = DateTime.ParseExact(DateTime.Now.ToString(), "MM/dd/yyyy", null);
int cmp = _dateJoin.CompareTo(_CurDate);
if (cmp > 0)
{
return ValidationResult.Success;
}
else if (cmp < 0)
{
return new ValidationResult(ErrorMessage);
}
else
{
return ValidationResult.Success;
}
}
值变量的有效日期也包含时间部分。感谢
答案 0 :(得分:5)
您只需要比较DateTime.Today
和DateTime.Date
:
if(_dateJoin.Date > DateTime.Today)
{
// ...
}
else
{
// ...
}
更新:
object
值的日期类似于Date = {03-16-2016 12:00:00 AM}
执行此行
DateTime _dateJoin = DateTime.ParseExact(value.ToString(), "MM/dd/yyyy", null);
然后我收到错误,因为String未被识别为有效的DateTime。 -
这是一个不同的问题,您必须使用正确的格式提供程序:
DateTime _dateJoin = DateTime.Parse(value.ToString(), CultureInfo.InvariantCulture);
ParseExact
(在这种情况下不必要):
DateTime _dateJoin = DateTime.ParseExact(value.ToString(), "MM-dd-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
答案 1 :(得分:3)
仅比较日期部分:
int cmp = _dateJoin.Date.CompareTo(_CurDate.Date);