Использование Bootstrap.TimerPicker с MVC не выбирает правильное время

Я пытался использовать этот компонент, но он не показывает правильное время, когда я удаляю javascript «timepicker», он показывает нормальный ввод с правильной датой и временем, но после использования компонента он показывает неправильное время. Почему?

Кажется, он подхватывает часть даты 20/05. Должен ли я использовать другой формат? Например, TimeSpan вместо DateTime?

Просмотр MVC

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

JavaScript

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

Экран

введите здесь описание изображения

Просмотреть

Как вы можете видеть ниже, времена разные, эти значения являются моделью представления.

введите здесь описание изображения

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


person Roger Oliveira    schedule 29.05.2015    source источник
comment
Вы проверили HTTP-запрос, чтобы увидеть, есть ли различия в DateTime, отправленных на сервер?   -  person rexcfnghk    schedule 29.05.2015
comment
Да. но я нашел проблему, которую я опубликую как ответ.   -  person Roger Oliveira    schedule 29.05.2015


Ответы (2)


Я нашел решение:

Плагин Jquery Bootstrap.Timepicker должен использоваться с типом данных TimeSpan.

После изменения типа данных с DateTime на TimeSpan все заработало отлично.

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

Примечание. Когда вы используете формат DateTime, он принимает первую часть даты, в моем примере 20/05 было преобразовано в 20:05.

person Community    schedule 29.05.2015
comment
На самом деле это не решает проблему, TimeSpan — это тип для представления периода времени, такого как 2 hours, 30 days или 1.67 years. Но из вашей модели StartTime представляет собой DateTime, фактическую дату и время, например 2015-09-10 11:23:45. - person rexcfnghk; 29.05.2015
comment
@rexcfnghk, когда я сохраняю его, я объединяю свое другое свойство Date + StartTime. В этом случае, как вы думаете, это сработает? - person Roger Oliveira; 29.05.2015

Немного поздно, но эта проблема также возникает при использовании 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:10 или 3:17 по желанию.

Я думаю, что это ошибка, так как это должно работать без пробела. Это обходной путь, пока ошибка не будет исправлена.

person Dion V.    schedule 02.12.2015