【发布时间】:2013-10-28 20:25:22
【问题描述】:
我在将 DateTextBox 和 TimeTextBox 的输入序列化为 JSON 时遇到问题 - 在序列化期间进行时区转换,这迫使我将时区发送到服务器并在那里进行适当的调整。
为了防止出现这种情况,我想更改日期格式以进行序列化。我可以更改 Date 的原型,如 here 所述(我已经在 JSFiddle 中完成了该操作),但我不希望更改单个请求范围内的行为。类似的东西:
someDojoUtil.jsonSerialize(obj, {option1: 'value1'...})
Dojo 是否提供了实现它的方法,或者唯一的方法是全局更改 Date 的原型?
【问题讨论】:
-
toJSON() 方法(如链接文章中所述)是否不能满足您的需求?例如,在您的 Form 对象中,将您的专用 toJSON 序列化附加到该表单中的所有 Date 输入? (因此将影响隔离到那种形式?)
-
@bishop 我想将序列化的责任交给调用 REST 通道的方法,从而隔离它所属位置的代码,并断言应用程序的其他部分(可能使用其他远程服务)不受影响。
-
从长远来看,我建议您以 UTC 格式通过网络向两个方向发送 all 日期/时间。这不是您已经在使用 Javascript
Date对象进行序列化了吗? -
@Darien 问题是客户端时区偏移可以是任意的,所以不,我不能使用服务器进行开箱即用的操作。 JavaScript 小部件可能在 UTC 上工作,但 DoJo 的 TimeTextBox 正在当地时间上工作。
标签: javascript json date serialization dojo