引导日期显示格式总是错误

本文关键字:错误 显示格式 日期 | 更新日期: 2023-09-27 17:49:14

我得到了一个看似简单的日期显示,当另一个"Sale date " DropDownBoxFor被切换时,显示默认的"Start date "或AJAX结果日期。日期格式应设置为短日期,但显示总是以日期和时间格式显示。切换"销售日期"字段后,将检索对应的"销售日期"的"开始日期",并显示为RFC1123日期!

模型:

public DateTime StartDate { get; set; }
剃刀:

@Html.TextBoxFor(m => m.StartDate, "{0:d}", new { @readonly = "readonly", @class = "form-control" })
AJAX:

success: function (data) {
    var pattern = /Date'(([^)]+)')/;
    var results = pattern.exec(data[0].StartDate);
    var dt = new Date(parseFloat(results[1]));
    $("#StartDate").val(dt);

将TextBoxFor更改为DisplayFor后,短日期正确显示,但在切换其他字段后不会更新。因此,我将DisplayFor包装在一个span中,并用AJAX中的.html()替换了.val()更改,但在切换后,格式恢复到默认和RFC1123的不正确日期和时间!有人能看出这是怎么回事吗?提前感谢!

引导日期显示格式总是错误

我从来没有发现为什么会发生这种情况,但是我的解决方案实现了最终目标:我将TextBoxFor更改为EditorFor,然后任何时候使用切换,脚本将html文本更改为结果日期。

剃刀:

<div class="startDate">
    @Html.EditorFor(m => m.StartDate, "DateTime", "StartDate", new { @class = "form-control" })
</div>
AJAX:

success: function (data) {
    var pattern = /Date'(([^)]+)')/;
    var results = pattern.exec(data[0].StartDate);
    var dt = new Date(parseFloat(results[1]));
    $(".startDate").text((dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear());