【问题标题】:ASP.NET MVC 5 using Jquery datepicker, not displaying time, preserving cultureASP.NET MVC 5 使用 Jquery datepicker,不显示时间,保留文化
【发布时间】:2014-02-19 08:35:53
【问题描述】:

在局部视图中,我执行以下操作:

@Html.TextBoxFor(m=> m.DateFrom, new{@class="datepicker"})
@Html.TextBoxFor(m=> m.DateTo, new{@class="datepicker"})

这是日期选择器,在主视图中定义:

@section scripts
{
    <script type="text/javascript">

        $('.datepicker').datepicker({
            changeMonth: true,
            changeYear: true,
            minDate: "-99Y",
            dateFormat: "@CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.Replace("yyyy", "yy").ToLower()"
        });
    </script>   

}

这有两个问题:

1) 两个日期选择器都默认为 0001-01-01 00:00:00 2) 它们显示时间,如上所示。

我想我可以通过以下方式解决#1:

[Display(Name = "MyOrdersControl_From", ResourceType = typeof (SiteTextResources))]
public DateTime DateFrom
        {
            get { return _dateFrom.HasValue ? _dateFrom.Value : new DateTime(1970, 1, 1); }
            set { _dateFrom  = value; }
        }

private DateTime? _dateFrom;

但是当我寻找消除时间的解决方案时,我会看到诸如添加之类的东西

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-mm-dd}")]

但这不仅不会删除时间,还会覆盖我对文化敏感的日期格式(我认为?)。我已经看到将 TextBoxFor 更改为 EditorFor 的建议,这确实解决了时间问题,但确实会丢失 datepicker 绑定。还有同样的文化问题。

怎么办?

【问题讨论】:

  • 日期选择器有一个格式属性,您可以像这样使用datepicker({ format: 'dd.mm.yyyy' })
  • 我已经在使用 format 属性了。与文化信息一起。你是说我不应该?

标签: jquery asp.net-mvc datepicker asp.net-mvc-5


【解决方案1】:

像这样添加格式:

dateFormat: 'mm/dd/yy'

并将其放入 web.config:

<globalization culture="en-US" uiCulture="en-US" />

【讨论】:

  • 谢谢,但文化应该仍然取决于谁登录。
  • 好吧,我想你应该寻找 dateFormat。尝试:'dd-mm-yy'、'yy-mm-dd' 等等。
猜你喜欢
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 2021-07-01
  • 2020-01-12
相关资源
最近更新 更多