.NET datepicker 格式给出“MM-dd-yyyy”而不是“MM/dd/yyyy”

Posted

技术标签:

【中文标题】.NET datepicker 格式给出“MM-dd-yyyy”而不是“MM/dd/yyyy”【英文标题】:.NET datepicker format gives "MM-dd-yyyy" instead of "MM/dd/yyyy" 【发布时间】:2015-02-11 17:48:11 【问题描述】:

我在我的 MVC 中创建了一个运行良好的日期选择器,但是当我选择一个日期时,我得到的格式为“MM/dd/yyyy”。当我保存它时,它会变回“MM-dd-yyyy”。如果我尝试使用这种格式保存,日期选择器会说它不是有效日期,因为它已将分隔符从“/”更改为“-”。 所以我希望保持这样的格式“MM/dd/yyyy”。

这是我实现日期选择器的字段的代码:

   @html.ValidationSummary(true)
   @Html.HiddenFor(model => model.Id)
   <div class="form-group">
        @Html.LabelFor(model => model.TimeFrom, new  @class = "control-label col-md-2" )
        <div class="col-md-10">
            @*@Html.EditorFor(model => model.TimeFrom)*@
            @Html.TextBoxFor(model => model.TimeFrom, "0:MM/dd/yyyy", new  @class = "datepicker form-control")
            @Html.ValidationMessageFor(model => model.TimeFrom)
        </div>
   </div>

这是给我的日期选择器的:

<script type="text/javascript">
$(document).ready(function () 
    $('.datepicker').each(function () 
        $(this).datepicker(
            changeMonth: true,
            changeYear: true
        );
    );
);
</script>

【问题讨论】:

【参考方案1】:

将格式添加到您的 datepicker 选项中:

<script type="text/javascript">
$(document).ready(function () 
    $('.datepicker').each(function () 
        $(this).datepicker(
            changeMonth: true,
            changeYear: true,
            dateFormat: "mm/dd/yy"
        );
    );
);
</script>

datepicker 格式与 ASP.NET 格式略有不同。 mm 相当于MMyy 相当于yyyy

【讨论】:

【参考方案2】:

我能够使用我想要的日期格式“dd.mm.yyyy”的唯一方法是这样的:

对于剃刀语法,我必须使用 TextBoxFor(如果使用 EditorFor,Chrome 将无法正常工作):

@ Html.EnableClientValidation(false); 
@Html.TextBoxFor(model => model.Date, new  
    @Value = Model.Date.ToString("dd.MM.yyyy"),  
    @class = "datepicker",
    placeholder = "Enter date here..." 
)
@ Html.EnableClientValidation(true); 

在模型声明中需要添加一些属性:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "0:dd.MM.yyyy", ApplyFormatInEditMode = true)]
public DateTime Date  get; set; 

还有一点 javascript 代码:

$('.datepicker').datepicker(
    dateFormat: 'dd.mm.yy'
);

【讨论】:

以上是关于.NET datepicker 格式给出“MM-dd-yyyy”而不是“MM/dd/yyyy”的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net MVC jQuery UI DatePicker 日期格式

ASP.NET MVC3:使用 JQuery DatePicker 和 editorFor/TextBoxFor 以正确的格式显示日期

从 DatePicker 以 yyyy/MM/dd 格式获取日期

无法让 Jquery datepicker 在我的 asp.net mvc 项目中工作

uib-datepicker angular js 未显示特定格式的日期时间

如何通过给出两个日期来限制 jquery datepicker 的日期范围?