【发布时间】:2017-06-05 13:24:13
【问题描述】:
我遇到了一个问题,即 CRM 似乎没有使用 OData 正确处理 DateTime。具体来说,我们正在尝试使用对 CrmRestKit 的 JavaScript 调用创建一个名为 new_vod 的自定义记录,其中包含开始时间和结束时间(以及为简单起见,我已从此处删除的一些其他属性)。当执行此功能的用户与服务器不在同一时区时,无论服务器与用户之间的偏移量如何,时间都是不正确的。
例如,如果我的 CRM 用户在山区时间并且服务器在东部时间,那么在查看 CRM 中新创建的记录时,开始时间将是从现在开始的 2 小时(即使应该是现在)。用户计算机的时区似乎对结果没有任何影响。 (我将“new_starttime”与“Created On”时间进行比较,以确认我不只是查看数据错误,并且在这种情况下,创建的时间是开始时间前 2 小时)。
这里是相关的sn-p:
var startTime = new Date();
//Add 90 minutes to the current date/time
var endTime = new Date();
endTime.setMinutes(startTime.getMinutes() + 90);
//Create a cvt_VOD record
var newVOD = {
'new_starttime': startTime,
'new_endtime': endTime
};
var createdVOD = CrmRestKit.Create('new_vod', newVOD)
...
我注意到,当我在 pre-stage 插件中调试 new_vod 记录的创建时,到 UTC 的“转换”已经不正确,所以这让我相信 Rest Call 本身是不正确的。
谁能解释为什么会发生这种情况?
仅供参考,我们正在使用 CRM 2015 内部部署。
【问题讨论】:
标签: javascript dynamics-crm dynamics-crm-2015