Для получения дополнительной информации, как для версий, используя Bootstrap 3.0.0 (построен с использованием новых шаблонов MVC, если я правильно помню), Bootstrap-datetimejs 4.0.0 (https://github.com/Eonasdan/bootstrap-datetimepicker) и ASP.NET MVC 5.Bootstrap DateTimePicker и существующие вопросы для парсинга?
Использование MVC я рендеринг кучи полей, но это одна уже существующие данные (это при проверке элемента в Chrome, так что не HtmlHelper код):
<input class="form-control timepicker input-validation-error" data-format="hh:mm PP"
data-val="true" data-val-date="The field Start (Time) must be a date."
data-val-required="The Start (Time) field is required."
id="MaintenanceSundayTimeStart"
name="MaintenanceSundayTimeStart" type="text" value="1/1/2000 8:00:00 PM">
код, который генерирует его:
<div class="col-sm-4">
<div class="form-group">
@Html.LabelFor(model => model.MaintenanceSundayTimeStart)
@Html.TextBoxFor(model => model.MaintenanceSundayTimeStart,
new { @data_format = "hh:mm PP", @class = "form-control timepicker" })
</div>
</div>
Когда страница загружается, я называю это:
$('.timepicker').each(function() {
$(this).datetimepicker({
format: 'LT'
});
});
редактировать: попытались попробовать это:
$('.timepicker').each(function() {
$(this).datetimepicker({
pickDate: false
});
});
и установить данные-формат этого основывается на рассмотрении документации moment.js, хотя косые и колоны не включены по я предполагаю, что они могут быть опущены в (чтобы соответствовать 1/1/2000 8:00:00 PM)
data-format="M/D/YYYY H:mm:ss A"
И еще, кажется, не в состоянии разобрать DateTime.
По какой-то причине, когда элемент управления отображается в текстовом поле, я вижу совершенно другое время (1:00 PM), которое говорит мне, что оно просто не сможет разобрать это значение. Я хочу, чтобы рендер был часом: только минуты AM/PM, но я думаю, что мне нужно привязываться к стандартным объектам DateTime, так? Глядя на источник, похоже, что ввод-валидация-ошибка вводится так, что может быть моей большой проблемой отправки формы, просто фокусирующей текстовое поле.
Есть ли что-то, что я делаю неправильно? Я знаю, что хочу взять «mm/dd/YYYY hh: mm: ss PP» и разобрать его, как только часть «hh: mm PP» разобрать. При сохранении я действительно забочусь только о компоненте времени (я вынуждаю дату до 1/1/2000 независимо от того, как вообще не занимаюсь компонентом даты).
edit: после дополнительных попыток я заметил, что значение, которое анализируется (в основном, путем сброса в другие значения), заключается в том, что значение, похоже, вытягивает часть MM как час. Вход будет полным временем datetime, но я хочу, чтобы пользователю был предоставлен временной компонент для управления (я заставляю все даты только 1/2/2000). На этом этапе я думаю, что если я смогу выполнить эту часть, я буду в порядке.
было странно, я собирался поделиться снимком экрана, не использующим свойство формата данных, и он все еще выходит на 1pm. Затем я увидел, что вы добавили шаблон редактора и отметили DateTimes как DataType (DataType.Time). Не уверен, какой из компонентов этого работает, но это исправило проблему, теперь она отображает 8pm как то, что передается. Спасибо за это (и теперь я знаю, что вы можете использовать EditorTemplates в Shared, очень прохладный добавленный бонус). – Robert
У меня есть группа этих шаблонов (https://github.com/Eonasdan/File-New-Project/tree/master/GSP%20New%20Project/Views/Shared/EditorTemplates) – Eonasdan