Bootstrap datepicker 日期比较错误(UK/US 格式错误)
Bootrap datepicker date comparison is wrong (UK/US formatting error)
我正在尝试比较两个日期。一种是用户在新建点时输入的,有日期字段,模型如下图。
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Start Date")]
public DateTime StartDate { get; set; }
另一个是使用日期选择器通过过滤器设置的。
<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 日),但日期选择器的过滤日期以美国格式发送,如 12/08/ 2015年(12月8日),所以比较这些是不正确的。
我如何比较它们才能正确比较?我在英国环境中使用它,所以只要用户只看到英国格式,幕后发生的事情并不重要。
提前致谢。
在这上面花了几个小时之后,我一 post 来到这里,我似乎灵机一动。我设法将美国时间从日期选择器转换为英国格式,然后进行比较。我以前试过这个,但意识到我设置了文化错误,所以我正在从美国格式转换为美国格式。我现在已经解决了这个问题并且它有效! :D
抱歉现在提出不必要的问题!
DateTime ukDateTimeFormat = DateTime.Parse(startDateFilter.ToString(), System.Globalization.CultureInfo.GetCultureInfo("en-us"));
我正在尝试比较两个日期。一种是用户在新建点时输入的,有日期字段,模型如下图。
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Start Date")]
public DateTime StartDate { get; set; }
另一个是使用日期选择器通过过滤器设置的。
<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 日),但日期选择器的过滤日期以美国格式发送,如 12/08/ 2015年(12月8日),所以比较这些是不正确的。
我如何比较它们才能正确比较?我在英国环境中使用它,所以只要用户只看到英国格式,幕后发生的事情并不重要。
提前致谢。
在这上面花了几个小时之后,我一 post 来到这里,我似乎灵机一动。我设法将美国时间从日期选择器转换为英国格式,然后进行比较。我以前试过这个,但意识到我设置了文化错误,所以我正在从美国格式转换为美国格式。我现在已经解决了这个问题并且它有效! :D
抱歉现在提出不必要的问题!
DateTime ukDateTimeFormat = DateTime.Parse(startDateFilter.ToString(), System.Globalization.CultureInfo.GetCultureInfo("en-us"));