我遇到了Breezejs和日期对象的问题。
以下是详细信息:
我的服务器上有这个对象,我正在与客户交换:
public class Transaction{
...
public DateTime? DueDate{get;set;}
...
}
客户端正在设置这样的日期(在momentjs的帮助下)
transaction().dueDate(moment(dateString(),"DD-MM-YYYY").toDate());
在下面的内容中,用户将transaction().dueDate
设置为26-09-2014
。
调试器显示这些字段的值如下:
dateString() = "26-09-2014"
moment(dateString(),"DD-MM-YYYY") = "Fri Sep 26 2014 00:00:00 GMT+0200"
moment(dateString(),"DD-MM-YYYY").toDate() = "Fri Sep 26 2014 00:00:00 GMT+0200"
transaction().dueDate() = "Fri Sep 26 2014 00:00:00 GMT+0200"
到目前为止,这么好。日期设置正确,微风很满意。
问题
将更改保存到服务器时,会发生一些有趣的事情!而不是发送26-09-2014到服务器,Breeze发送25-09-2014而不是!
顺便说一下,我正在使用Breeze 1.4.11
编辑 - 解决方案
在阅读了几篇关于“好”视觉日期处理在不同浏览器中的文章之后,我想到在创建日期对象时指定mommentjs的本地时区如下:
transaction().dueDate(moment(dateString(),"DD-MM-YYYY Z").toDate());
^
这似乎解决了这个问题。
为什么在保存更改时breeze更改日期值的问题仍然没有答案。