.NET datepicker格式给出了" MM-dd-yyyy"而不是" MM / dd / yyyy"

时间:2014-12-12 22:58:03

标签: asp.net datepicker format

我在我的MVC中创建了一个可以正常工作的日期选择器,但是当我选择一个日期时,我得到了格式“MM / dd / yyyy”。当我保存时,它会变回“MM-dd-yyyy”。如果我尝试使用此格式保存,则datepicker表示它不是有效日期,因为它已将seperater从“/”更改为“ - ”。 所以我希望保持这样的格式“MM / dd / yyyy”。

以下是我实现datepicker的字段的代码:

   @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>

这是我的datepicker:

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我能够使用我想要的日期格式“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'
});