我想比较两个日期。一个是在创建新点时由用户输入的,该点具有日期字段,模型如下所示。
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Start Date")]
public DateTime StartDate { get; set; }
另一个是使用datepicker的过滤器设置的。
<div class="form-group">
<label for="end">Start date:</label><br />
<div class='input-group date' id='dt1'>
@Html.TextBox("StartDateFilter", null, new { @class = "form-control" })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<script type="text/javascript">
$('#dt1').datetimepicker({
locale: 'en-GB',
format: 'DD/MM/YYYY'
});
</script>
然后我尝试使用简单的if语句比较这两个日期:
if (dateInput >= dateFilter)
我遇到的问题是,输入的格式仍然保留在英国标准中,例如04/01/2015(1月4日),但是来自datepicker的过滤日期将以美国格式发送,如2015年8月12日( 12月8日),所以在比较时这是不正确的。
如何比较这些以便正确比较?我在英国环境中使用它,因此只要用户只看到英国格式,那么幕后发生的事情并不重要。
提前致谢。
答案 0 :(得分:1)
花了好几个小时之后,我在这里发帖后,似乎有一个有效的脑电波。我设法将美国时间从datepicker转换为英国格式,然后比较这些。我以前试过这个,但意识到我设置了错误的文化,所以我从美国格式转换为美国格式。我现在修好了它,它的确有效! :d
现在抱歉这个不必要的问题!
DateTime ukDateTimeFormat = DateTime.Parse(startDateFilter.ToString(), System.Globalization.CultureInfo.GetCultureInfo("en-us"));