【问题标题】:Bootrap datepicker date comparison is wrong (UK/US formatting error)Bootstrap datepicker 日期比较错误(英国/美国格式错误)
【发布时间】:2015-12-11 11:12:40
【问题描述】:

我正在尝试比较两个日期。一个是用户在新建点时输入的,有一个日期字段,模型如下图。

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

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

提前致谢。

【问题讨论】:

    标签: javascript jquery twitter-bootstrap datepicker momentjs


    【解决方案1】:

    在这上面花了几个小时之后,我一在这里发帖,我似乎有了一个有效的脑电波。我设法将美国时间从日期选择器转换为英国格式,然后进行比较。我之前尝试过这个,但意识到我设置了错误的文化,所以我正在从美国格式转换为美国格式。我现在已经解决了这个问题,它可以工作了! :D

    抱歉,现在提出不必要的问题!

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

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2021-09-22
      相关资源
      最近更新 更多