2017-01-29 2 views
0

Я слишком долго отключаюсь от этого, и я не вижу, как форматирование элемента управления datetimepicker Bootstrap переопределяется.Как Bootstrap/Moment DateTimePicker не может отобразить правильный 24-часовой формат?

Bootstrap DTP использует Moment.js за кулисами, чтобы отформатировать его таймер. Код JS выглядит следующим образом:

selector.find(".datepicker").each(function() { 
    var $that = $(this); 

    $that.datetimepicker({ 
     sideBySide: true, 
     useCurrent: false, 
     minDate: new Date(1910, 1, 1) 
    }); 

    $that.children("input").on("focus", function() { 
     $that.data("DateTimePicker").show(); 
    }); 
});                 

Ничто не кажется слишком сложным, там и форматирование в HTML выглядит так же просто:

@Html.EditorFor(x => x.DateTime, new { @dateFormat = "DD/MM/YYYY HH:mm", @mandatory = true }) 

Однако когда модель связана с представлением и итерациями JS над входы, отображаемые часы идут от 24 часов (например, 14:00) до 12 часов (то есть 02:00).

Я убежден, что это связано с интеграцией time.js и, скорее всего, с его обработкой часовых поясов, но я не вижу, где бы я мог применять разные настройки. Предложения были бы более чем приветствуются на этом этапе.

HTML output

+0

Который является DateTimePicker вы используете? Я думаю, что вы используете [eonasdan datetimepicker] (https://eonasdan.github.io/bootstrap-datetimepicker/), в этом случае лучше повторить свой вопрос. Более того, я думаю, что явным образом установите параметр ['format'] (http://eonasdan.github.io/bootstrap-datetimepicker/Options/#format) на' DD/MM/YYYY HH: mm', чтобы исправить вашу проблему. По умолчанию компонент использует 'DD/MM/YYYY hh: mm A' – VincenzoC

+0

Да, это тот, который я использую. Извините за то, что не являюсь конкретным –

+0

Я не смог воспроизвести вашу проблему, она работает для меня с использованием 'data-date-format', как показано на рисунке, вы можете предоставить скрипку или фрагмент? Возможно, это связано с MVC и не ограничивается JS, HTML и моментом. – VincenzoC

ответ

0

Попробуйте

$that.datetimepicker({ 
     format: 'DD/MM/YYYY HH:mm', 
     sideBySide: true, 
     useCurrent: false, 
     minDate: new Date(1910, 1, 1) 
    }); 
Смежные вопросы