我很难让三合会 rails+angularjs+jQuery datepicker 一起工作。
第一个问题是显示从后端检索到的日期。当 UI 从后端请求数据时,在某些时候,它会以 JSON 表示法接收以下内容。
{"id":1,"ragione_sociale":"FrigoCaserta srl","indirizzo":"Strada provinciale Gricignano d'Aversa","cap":"81030","citta":"Gricignano d'Aversa","provincia":"CE","partita_iva":"1234","codice_fiscale":null,"tipo_contratto":"Orario","costo":"0.0","inizio":"2012-05-01","fine":"2013-09-22","$$hashKey":"005"}
相关字段是“inizio”和“fine”(分别是开始日期和结束日期)。
Rails 时区设置为欧洲/罗马。
Datepicker 的选项设置为:{dateFormat: 'dd/mm/yy'}
因此,我希望输入字段将“inizio”日期显示为:01/05/2012,但相反,我返回:24/03/2018。
将 dateFormat 选项更改为 'yy-mm-dd' 显示正确的日期,但带有不需要的分隔符和格式 (2012-05-01) ...
然而,在幕后发生的事情是,显示的对象受到了一些操纵,变成了这样:
{"id":1,"ragione_sociale":"FrigoCaserta srl","indirizzo":"Strada provinciale Gricignano d'Aversa","cap":"81030","citta":"Gricignano d'Aversa","provincia":"CE","partita_iva":"1234","codice_fiscale":null,"tipo_contratto":"Orario","costo":"0.0","inizio":"2012-04-30T22:00:00.000Z", ...
请注意,“inizio”字段现在从“2012-05-01”转换为“2012-04-30T22:00:00.000Z”
现在,当我将表单提交到后端时,一切都会失败,因为 rails 接收到由 datepicker 格式化的“inizio”的新值。只是一个 Date 的数据库字段使有关时间的信息消失了,剩下的只是持久化到模型中的(错误的)日期。
我知道 datepicker 具有本地化选项,但我找不到任何与时区相关的内容,我可以更改以修复这种不需要的行为。
我以为我可以使用后端模型上的属性来解析来自 UI 的信息,但我不喜欢这种方法。
处理所有这些时要遵循的最佳做法是什么?
我已经通过 StackOverflow 类似的问题没有运气。
在此先感谢您的帮助。