asp.net-mvc - Editor只用于输入时间,不能设置为24小时格式

标签 asp.net-mvc twitter-bootstrap bootstrap-4

我正在尝试不同的东西,比如不同的 DataFormatString 甚至不同的控件来使其使用 24 格式,但它保持 AM/PM 格式,如何使其成为 24hs 格式?

编辑: 经过更多搜索后,我意识到同样的代码对某些人显示 24 小时格式,因此我可以重新表述为:什么可以在我的 PC 中配置为 AM/PM?我已经将 web.config 中的语言环境更改为 24 小时语言环境,但结果是一样的。我的区域设置也是 24 小时制。

查看:

<div class="col-md-2">
    Horario teórico Desde
    @Html.EditorFor(model => model.HorarioTeoricoDesde, new { htmlAttributes = new { @class = "form-control form-control-sm" } })
    @Html.ValidationMessageFor(model => model.HorarioTeoricoDesde, "", new { @class = "text-danger" })
</div>

View 模型:

[Display(Name = "Horario Teorico Desde")]
[Required(ErrorMessage = "El Horario Teorico Desde es Requerido")]
[DataType(DataType.Time)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]
public DateTime? HorarioTeoricoDesde { get; set; }

我的区域设置是 24 小时,西类牙语。这是我的 web.config:

  <system.web>
    <globalization culture="es-AR" uiCulture="es-AR" />

我是这样看的:

This is how i see it:

谢谢!!

最佳答案

当您使用 DataType.Time 时,输入的类型为 time

输入类型 time 是 HTML5 中的新内容。这种类型的支持仍然很差。即使您以 HH:MM AM/PM 格式(24 版本(目前正在开发中))看到时间,在后端它仍然以 24 小时格式工作,您可以尝试使用一些基本的 javascript 来查看。

示例:使用 bootstrap-timepicker .

View 模型:-

public class Time24ViewModel
{
    [DataType(DataType.Time)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]
    public DateTime? HorarioTeoricoDesde { get; set; }

    [Display(Name = "Horario Teorico Desde")]
    [Required(ErrorMessage = "El Horario Teorico Desde es Requerido")]
    public string HorarioTeoricoDesdeStr
    {
        get
        {
            return HorarioTeoricoDesde.HasValue ? HorarioTeoricoDesde.Value.ToString("HH:mm") : "";
        }
        set
        {
            if (!string.IsNullOrWhiteSpace(value))
            {
                var time = TimeSpan.Parse(value);
                HorarioTeoricoDesde = new DateTime(time.Ticks);

            }
        }
    }
}

Controller :-

public class TimeController : Controller
{
    // GET: Time
    public ActionResult Time24()
    {
        var model = new Time24ViewModel
        {
            HorarioTeoricoDesde = DateTime.Now
        };
        return View(model);
    }
    [HttpPost]
    public ActionResult Time24(Time24ViewModel model)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }
        return View(model);
    }
}

查看:-

<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-timepicker/0.5.2/js/bootstrap-timepicker.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-timepicker/0.5.2/css/bootstrap-timepicker.css" rel="stylesheet" />

@using (Html.BeginForm("Time24", "Time", FormMethod.Post)) { 
<div class="col-md-2">
    Horario teórico Desde
    @Html.EditorFor(model => model.HorarioTeoricoDesdeStr, new { htmlAttributes = new { @class = "form-control form-control-sm" } })
    @Html.ValidationMessageFor(model => model.HorarioTeoricoDesdeStr, "", new { @class = "text-danger" })
</div>
<div class="col-md-2">
    <input type="submit" class="btn btn-dark" value="Submit"/>
</div>
}

<script>
    $('#HorarioTeoricoDesdeStr').timepicker({
        showMeridian: false
    });
</script>

(已测试)

关于asp.net-mvc - Editor只用于输入时间,不能设置为24小时格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60820269/

相关文章:

asp.net-mvc - 将选定值从单选按钮传递到 MVC 中的 Controller

html - Bootstrap 可折叠不降低视差

javascript - bootstrap-datepicker:选择特定日期时显示 DIV

c# - 将空格字符模型绑定(bind)到 char 属性

c# - 浏览器关闭后Session变为空

asp.net-mvc - 什么时候使用 Html.RenderAction() 合适?

jquery - select2 4.0 和 Bootstrap 工具提示

ruby-on-rails - Ruby on Rails Bootstrap Glyphicons 不工作

css - Bootstrap 搜索按钮与输入字段不一致

css - Bootstrap 4(阿尔法 3): card columns - customized number of columns