【问题标题】:Using Bootstrap.TimerPicker with MVC not picking the right time使用带有 MVC 的 Bootstrap.TimePicker 没有选择正确的时间
【发布时间】:2015-05-29 03:21:46
【问题描述】:

我尝试使用此组件,但它没有显示正确的时间,当我删除 javascript“timepicker”时,它显示了一个具有正确日期时间的正常输入,但在使用该组件后它显示了错误的时间。为什么?

它似乎正在接收日期部分 20/05。我应该使用另一个 格式?比如 TimeSpan 而不是 DateTime?

MVC 视图

@Html.TextBoxFor(m => m.StartTime, new {@class = "form-control timepicker"})

Javacript

 $('.timepicker').timepicker({autoclose: true,minuteStep: 15,showSeconds: false,showMeridian: false});

屏幕

查看

正如您在下面看到的,时间不同,这些值是视图的模型。

http://jdewit.github.io/bootstrap-timepicker/

【问题讨论】:

  • 你检查过HTTP请求,看看发送到服务器的DateTime是否有差异?
  • 是的。但我发现了我将作为答案发布的问题。

标签: c# twitter-bootstrap timepicker bootstrap-datetimepicker


【解决方案1】:

我找到了解决办法:

Jquery Plugin Bootstrap.Timepicker 必须使用数据类型TimeSpan

将数据类型从 DateTime 更改为 TimeSpan 后,它运行良好。

public TimeSpan StartTime { get; set; }
public TimeSpan? EndTime { get; set; }

注意:当您使用 DateTime 格式时,它会占用日期的第一部分,在我的示例中 20/05 已转换为 20:05

【讨论】:

  • 这实际上并不能解决问题,TimeSpan 是一种表示时间段的类型,如2 hours30 days1.67 years。但从您的模型来看,StartTime 代表 DateTime,即实际日期和时间,例如 2015-09-10 11:23:45
  • @rexcfnghk 当我保存它时,我连接了我的其他属性 Date + StartTime。在这种情况下,你认为它会奏效吗?
【解决方案2】:

有点晚了,但是在使用 Bootstrap DateTimePicker(目前是 v4)时也会出现这个问题。

使用您的示例,以下内容也会产生 20:05;

$(function () {
    var timeFormat = "HH:mm";

    $('.timepicker').datetimepicker({
            format: timeFormat
    });
});

但是,将 "HH:mm" 更改为 " HH:mm"(注意空格)让我得到了想要的结果;

$(function () {
    var timeFormat = " HH:mm";

    $('.timepicker').datetimepicker({
            format: timeFormat
    });
});

这会根据需要产生 5:103:17

我认为这是一个错误,因为它应该在没有空格的情况下工作。在错误修复之前,这是一种解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多