#grails
#grails
Вопрос:
Используя элемент управления grails datepicker, есть ли способ сохранить точность во времени, но показывать пользователю только с точностью до дня? Пользователя интересует только этот день, но мне нужно добавить время суток, когда запись была сохранена в базе данных.
Ответ №1:
Из того, что я знаю, datepicker не сохраняет точность и устанавливает некоторые значения по умолчанию для полей, которые пропущены.
Если вам нужно сохранить, чтобы сохранялась запись времени суток, вы можете использовать dateCreated
lastUpdated
которое будет автоматически установлено при сохранении объекта в первый раз ( dateCreated
) или при каждом изменении объекта ( lastUpdated
).
class Message {
...
Date dateCreated
Date lastUpdated
}
Комментарии:
1. Спасибо, я пошел по этому пути, хотя я бы предпочел упорядочивать только по одному полю вместо двух. Было бы неплохо скрыть поля времени и установить в datepicker значения времени по умолчанию.
2. @Bill — вы можете изменять значения времени в вашем контроллере также при отправке вашей формы.
Ответ №2:
Если вы добавите атрибут precision='day'
к тегу, поля времени отображаться не будут, например
<g:datePicker name="myDate" value="${new Date()}" precision="day"/>
Затем вы можете установить для полей времени в контроллере значения по умолчанию при отправке данных.
Ответ №3:
Для того, чтобы просто сохранять точность до сегодняшнего дня в базе данных, вы можете использовать сопоставление. Предполагая, что вашей базой данных является MSSQL (https://msdn.microsoft.com/en-us/library/ms186724.aspx?f=255amp;MSPPError=-2147217396)
class Message {
...
Date dateCreated
Date lastUpdated
static mapping = {
dateCreated sqlType:'date'
lastUpated sqlType:'date'
}
}
Ссылка:http://docs.grails.org/latest/ref/Database Mapping/column.html
В ваших GSP вы можете использовать
<g:datePicker name="dateCreated" value="${new Date()}" precision="day" />
Ссылка:http://docs.grails.org/latest/ref/Tags/datePicker.html