我有一个Texbox,用于输入日期。我使用RegularExpressionValidator作为格式dd-mm-yyyy
。它工作正常。
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="tb_date" ErrorMessage="dd-mm-yyyy"
ValidationExpression="\d{1,2}-\d{1,2}-\d{4}">
</asp:RegularExpressionValidator>
但我还需要评估输入日期不应低于今天的日期。我该如何实现它?请帮忙......
答案 0 :(得分:2)
您可以创建一个CustomValidator
,将值解析为DateTime
DateTime.ParseExact(str, "dd-mm-yyyy")
或者您可以在javascript上创建验证,将值转换为日期并与现在进行比较
答案 1 :(得分:1)
您需要检查以下条件:
if(Datetime.parse(txtdate.Text)<DateTime.Now)
{
Responce.Write("<head><script type='text/javascript'>alert('Date is greater than today's date');</script></head>");
}
答案 2 :(得分:1)
试试这个
if (DateTime.Now.Date > givenDate.Date)
{
//Show error message
}
答案 3 :(得分:1)
我会投票给总是TryParseExact
if (DateTime.TryParseExact(txtdate.Text, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out userDob))
{
if (userDob < DateTime.Now )
//TODO: Message will displayed
}
答案 4 :(得分:1)
<asp:Calendar ID="EndDate" runat="server" OnSelectionChanged="EndDate_OnSelectionChanged">
</asp:Calendar>
<asp:TextBox runat="server" ID="txtEndDate"></asp:TextBox>
<asp:CompareValidator runat="server" ID="CompareEndTodayValidator" ErrorMessage="The date must be less than today"
ControlToValidate="txtEndDate" Type="Date" Operator="LessThan"></asp:CompareValidator>
protected void EndDate_OnSelectionChanged(object sender,EventArgs e) { txtEndDate.Text = EndDate.SelectedDate.ToShortDateString(); }
关于代码隐藏的页面加载
CompareEndTodayValidator.ValueToCompare = DateTime.Now.ToShortDateString();
我希望它可以帮到你:)。
答案 5 :(得分:0)
嘿试试这个。
string dateString = finalDate; // <-- Valid
string format = "dd/MM/yyyy";
DateTime dateTime;
if (!DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime))
{
message = "Date is not correct format.it should be in dd/mm/yyyy";
}
希望它可以帮助你。
答案 6 :(得分:0)
我认为你可以使用额外的Range Validator。只需将两个(正则表达式和范围)验证器用于一个控件。您可以在此处找到有关该问题的讨论:http://forums.asp.net/t/1287771.aspx
还请记住,您可以在逻辑中添加一些验证。请想象一下,例如你必须在上传之前检查该文件是否小于10MB pdf文件。所以没有强制控制,你必须在逻辑方面实现自己的验证。祝好运!
答案 7 :(得分:0)
创建Timespan
的对象,只需从当前日期中减去输入日期。检查此代码:TimeSpan ts = d1.Subtract(d2);
和这个帖子:Date Difference in C#
答案 8 :(得分:0)
使用自定义验证器可能是更好的选择。你应该做到最合适。