[英]How can I validate the date is not the future date in .net c#
只是徘徊,我如何验证日期不是 .net c# 中的未来日期。
例子:
我已经在那里应用了验证以进行必填字段验证。 但不知何故,我不知道如何应用验证来检查开始日期以确保它不是未来日期(日期不大于当前日期)?
<tr>
<td align="right">Start Date:</td>
<td><asp:TextBox runat="server" ID="activeDate" size="8"/>(YYYY-MM-DD)
<asp:RequiredFieldValidator ID="reqvactiveDate" runat="server"
ControlToValidate="activeDate" Display="Dynamic" EnableClientScript="true"
ErrorMessage="required" />
</td>
</tr>
比我编写以下代码来尝试日期验证。 日期验证似乎对我不起作用:(
<tr>
<td align="right">Start Date:</td>
<td><asp:TextBox runat="server" ID="activeDate" size="8"/>(YYYY-MM-DD)
<asp:RequiredFieldValidator ID="reqvactiveDate" runat="server"
ControlToValidate="activeDate" Display="Dynamic" EnableClientScript="true"
ErrorMessage="required" />
<asp:CustomValidator runat="server"
ID="valDateRange"
ControlToValidate="activeDate"
onservervalidate="valDateRange_ServerValidate"
ErrorMessage="enter valid date" />
</td>
</tr>
后面的代码:
protected void valDateRange_ServerValidate(object source, ServerValidateEventArgs args)
{
DateTime minDate = DateTime.Parse("1000/12/28");
DateTime maxDate = DateTime.Parse("2011/05/26");
DateTime dt;
args.IsValid = (DateTime.TryParse(args.Value, out dt)
&& dt <= maxDate
&& dt >= minDate);
}
DateTime 实现了一个 IComparer 接口。 检查它是否大于 DateTime.Now
没有理由解析它,只需执行以下操作:
if(datetime1>datetime2)
{
....
}
我认为您遇到了以下错误: DateTime.Parse("1000/12/28")
相反,请尝试DateTime.MinValue
。 您还可以选择使用 compareValidators..
此外,您不只是在做 [your date] < DateTime.now 的任何原因吗?
这是我的代码,它在客户端验证日期值不在将来:
<tr>
<td align="right">
Start Date:
</td>
<td>
<asp:TextBox runat="server" ID="txtActiveDate" size="8"/>(YYYY-MM-DD)
<!-- Validate if the entered date value is valid -->
<asp:CompareValidator ID="cvIsActiveDateValid" runat="server"
ControlToValidate="txtActiveDate"
ErrorMessage="Invalid Start Date"
Operator="DataTypeCheck"
Type="Date"></asp:CompareValidator>
<!-- Validate if the entered value is not future dated -->
<asp:CompareValidator ID="cvIsActiveDateNotInFuture" runat="server"
ControlToValidate="txtActiveDate"
ErrorMessage="Start Date cannot be a future date."
Operator="LessThanEqual"
Type="Date"></asp:CompareValidator>
</td>
</tr>
protected void Page_Load(object sender, EventArgs e)
{
SetTodaysDateToCompareValidators();
...
}
protected void SetTodaysDateToCompareValidators()
{
string defaultDateFormat = "YYYY-MM-DD";
string today = DateTime.Today.ToString(defaultDateFormat);
cvActiveDate.ValueToCompare = today;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.