2016-06-03 1 views
4

Я пытаюсь использовать сопоставления даты в PlayFramework и поле datetime-local. Docs HereДопустимые форматы для отображения jodaDate в Play 2.5

Усеченное сопоставление выглядит так, с несколькими вариантами, которые я пробовал для валидатора.

mapping(
    "startTimeGt" -> optional(jodaDate), 
    "startTimeLt" -> optional(jodaDate("dd-MM-yyyy HH:mm")) 
)(... 

Я пробовал как связанный помощник inputDate, так и поле datetime-local.

Но какая бы комбинация я ни старался, я получаю error.date на форме submit. Я чувствую, что это должно быть просто, и либо я что-то пропускаю в документах, либо они просто не говорят мне. Кто-нибудь получил рабочий пример требуемого html и сопоставление jodaDate?

+0

Я блуждаю, если вы опубликуете журнал ошибок? – Jerry

+0

@Jerry Нет журнала ошибок. Я просто получаю 'formWithErrors' при выполнении' form.bindFromRequest.fold'. И ошибка, связанная с этим полем, - error.date, которая переводится в сообщение «Действительная дата требуется» –

ответ

1

Я предполагаю, что formWithErrors были вызваны кодом

"startTimeLt" -> optional(jodaDate("dd-MM-yyyy HH:mm"))// the format maybe wrong 

, потому что вы не знаете формат jodaDate передается от переднего конца к заднему концу. Вы можете распечатать содержимое формы, прежде чем связывать форму из запроса, как этот

def index() { implicit request => 
    println(request)//it will print the request content and you can find the "startTimeLt" to verify its format 
    form.bindFromRequest.fold... 
} 

Удачи

+0

Формат от формы 03-06-2016T00: 00. Я попытался использовать строку формата 'dd-MM-yyyy'THH: mm', но безрезультатно. –

+0

@NathanEdwards, если вы измените свой код, отбросив предел формата jodaDate, «startTimeLt» -> optional (jodaDate). Это работает? – Jerry

+0

Нет, нет. Я попытался сделать это ясным в своем вопросе, показывая несколько вариантов, которые я пробовал. –

1

если формат из формы: 03-06-2016T00:00 , чем вы, вероятно, нужно что-то вроде: dd-MM-yyyy'T'HH:mm.

P.S .: Вероятно, вы должны использовать java8 localDateTime, так как joda будет разделен на Play 2.6.

Смежные вопросы