Bootrap datepicker日期比较错误(英国/美国格式错误)

时间:2015-12-11 11:12:40

标签: javascript jquery twitter-bootstrap datepicker momentjs

我想比较两个日期。一个是在创建新点时由用户输入的,该点具有日期字段,模型如下所示。

[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日),所以在比较时这是不正确的。

如何比较这些以便正确比较?我在英国环境中使用它,因此只要用户只看到英国格式,那么幕后发生的事情并不重要。

提前致谢。

1 个答案:

答案 0 :(得分:1)

花了好几个小时之后,我在这里发帖后,似乎有一个有效的脑电波。我设法将美国时间从datepicker转换为英国格式,然后比较这些。我以前试过这个,但意识到我设置了错误的文化,所以我从美国格式转换为美国格式。我现在修好了它,它的确有效! :d

现在抱歉这个不必要的问题!

DateTime ukDateTimeFormat = DateTime.Parse(startDateFilter.ToString(), System.Globalization.CultureInfo.GetCultureInfo("en-us"));