У меня необычная проблема с форматированием даты, с которой, возможно, столкнулся кто-то другой.

У меня есть приложение MVC с текстовыми полями с @class = datepicker. У меня есть строка глобального форматирования (dd-MMM-yyyy) Там немного JS:

$(function () {
    $('.datepicker').datepicker({
        format: 'dd-MMM-yyyy',
        autoclose: true
    });
}); 

Проблема: когда я нажимаю на текстовое поле и выбираю дату, я получаю примерно следующее:

01-JanuaryJan-2017

Я предположил, что, возможно, у меня было какое-то форматирование где-то вроде dd-MMMMMMM-YYYY, но это не так. Я в растерянности.

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

Я понимаю, что здесь у меня не так много деталей, но я также ищу только общие / высокоуровневые решения, такие как: Проверьте эту общую область или найдите это и т. Д.

-1
Jeremy Ehret 4 Янв 2017 в 01:45
Формат - неправильное имя свойства для объекта параметров. Попробуйте dateFormat - документы здесь: api.jqueryui.com/datepicker/#option- dateFormat
 – 
mhodges
4 Янв 2017 в 01:51
Одна вещь, с которой парсеры даты и форматировщики, похоже, не могут прийти к согласию, - это токены, которые будут использоваться для синтаксического анализа и форматирования. :-(
 – 
RobG
4 Янв 2017 в 01:58

2 ответа

У вас неправильный формат. Используйте правильный из следующих (по своему желанию):

format: 'dd-MM-yy'

Который будет отображать дату как это 03-January-2017

ИЛИ

format: 'dd-M-yy'

Который будет отображать дату как это 03-Jan-2017

2
Smort 4 Янв 2017 в 01:54
Это будет 'dd-M-yy'
 – 
Smort
4 Янв 2017 в 01:52

Вот (неполный) список допустимых значений для свойства dateFormat из jQueryUI DatePicker Docs:

Формат может представлять собой следующие комбинации:

  • d - день месяца (без начального нуля)
  • дд - день месяца (две цифры)
  • o - день года (без начальных нулей)
  • oo - день года (три цифры)
  • D - название дня короткое
  • ДД - длинное имя
  • m - месяц года (без нуля в начале)
  • мм - месяц года (две цифры)
  • М - название месяца короткое
  • MM - название месяца
  • y - год (две цифры)
  • гг - год (четыре цифры)
  • @ - временная метка Unix (мс с 01.01.1970)
  • ! - Галочки Windows (100нс с 01.01.10001)
  • '...' - буквальный текст
  • '' - одинарная кавычка
  • что-нибудь еще - буквальный текст

Итак, в вашем случае вы комбинируете MM, которое является полным названием месяца, с M, которое является коротким названием месяца, в результате получается JanuaryJan.

1
mhodges 4 Янв 2017 в 02:21
Большое спасибо за быстрый ответ! Похоже, я был сбит с толку из-за разных вариантов форматирования между jQuery и C #. Мне не удалось заставить dateFormat работать. У меня это сработало: format: 'dd-M-yyyy'; Я попробовал «уу», но получил только две последние цифры. Спасибо всем :).
 – 
Jeremy Ehret
4 Янв 2017 в 02:17
Интересно насчет названия свойства ... Мне нужно в нем разобраться. Однако рад, что список ценностей помог! Я обновлю свой пост
 – 
mhodges
4 Янв 2017 в 02:21
Я где-то еще читал, что dateFormat требует плагина, который должен явно вызываться в