Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 保存更改时发送错误的日期值_Javascript_Date_Datepicker_Breeze - Fatal编程技术网

Javascript 保存更改时发送错误的日期值

Javascript 保存更改时发送错误的日期值,javascript,date,datepicker,breeze,Javascript,Date,Datepicker,Breeze,我面临着Breezejs和date对象的问题 详情如下: 我的服务器上有一个与客户端交换的对象: public class Transaction{ ... public DateTime? DueDate{get;set;} ... } 客户端在momentjs的帮助下设置了这样的日期 transaction().dueDate(moment(dateString(),"DD-MM-YYYY").toDate()); 在下面的内容中,用户将tra

我面临着Breezejs和date对象的问题

详情如下:

我的服务器上有一个与客户端交换的对象:

public class Transaction{
    ...
    public DateTime? DueDate{get;set;}
    ...
}
客户端在momentjs的帮助下设置了这样的日期

transaction().dueDate(moment(dateString(),"DD-MM-YYYY").toDate());
在下面的内容中,用户将transaction.dueDate设置为2014年9月26日。 调试器如下所示显示这些字段的值:

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"
transaction().dueDate(moment(dateString(),"DD-MM-YYYY Z").toDate());
                                                      ^ 
到目前为止,一切顺利。日期设置正确,breeze对此很满意

问题

将更改保存到服务器时,发生了一些有趣的事情!Breeze没有向服务器发送2014年9月26日,而是发送2014年9月25日

顺便说一下,我用的是微风1.4.11

编辑-解决方案

在阅读了几篇关于不同浏览器中如何处理“良好”视觉日期的文章后,我想到在创建日期对象时为mommentjs指定本地时区,如下所示:

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"
transaction().dueDate(moment(dateString(),"DD-MM-YYYY Z").toDate());
                                                      ^ 
这似乎解决了这个问题


为什么breeze会在保存更改时更改日期值的问题仍然没有答案。

breeze不会更改日期的值,它只是将日期设置为适当的格式。文档就是这么说的。为什么breeze发送2014年9月25日,而可观测属性被正确设置为2014年9月26日?这里的日期已经改变了,我认为这不仅仅是格式上的改变。