Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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
Breeze 阻止微风加入时区_Breeze - Fatal编程技术网

Breeze 阻止微风加入时区

Breeze 阻止微风加入时区,breeze,Breeze,我不希望breeze在服务器或客户端上添加时区信息。我怎么关掉这个 我在数据库中有一个SQL日期字段-我不需要时间。在C中使用DateTime变量时,我总是希望将它们设置为午夜。我正在覆盖客户端上的breeze.DataType.parseDateFromServer,如这里所述,但我似乎仍在服务器上进行调整。这里的关键点是breeze没有处理时间和时区信息。问题是日期会自动序列化为时间组件,因为在javascript中,所有日期都有时间组件。因此,即使此信息全部设置为零,它仍将在客户端上解释为

我不希望breeze在服务器或客户端上添加时区信息。我怎么关掉这个


我在数据库中有一个SQL日期字段-我不需要时间。在C中使用DateTime变量时,我总是希望将它们设置为午夜。我正在覆盖客户端上的breeze.DataType.parseDateFromServer,如这里所述,但我似乎仍在服务器上进行调整。

这里的关键点是breeze没有处理时间和时区信息。问题是日期会自动序列化为时间组件,因为在javascript中,所有日期都有时间组件。因此,即使此信息全部设置为零,它仍将在客户端上解释为带有时间组件的日期

第二个问题是,几乎每个浏览器都根据自己的时区设置格式化日期

因此,问题要么是服务器的时区与客户端的时区不同,要么是服务器日期被序列化,没有时区信息,breeze会将其解释为具有零偏移量的UTC日期。i、 这不太可能与您当地的时区相匹配。这种情况在.NET中发生,服务器日期声明为DateTime,而不是DateTime2或DateTimeOffset

要解决这两个问题,您需要替换Breeze的DataType.parseDateFromServer,以便完全忽略传入的时区信息

比如:

breeze.DataType.parseDateFromServer = function (source) {
    source = stripTime(source); // you will need to write the stripTime method.
    return new Date(Date.parse(source));
};
如果您使用Moment.js,我认为您可以执行以下操作

breeze.DataType.parseDateFromServer = function (source) {
   var date = moment(source); 
   return date.toDate();   
};