目标: 找到 "本地时间 "和 "UTC 时间偏移",然后按以下格式构建 URL。
URL 示例/Actions/Sleep?duration=2002-10-10T12:00:00−05:00
该格式基于 W3C 建议: http://www.w3.org/TR/xmlschema11-2/#dateTime
文档说
例如,2002-10-10T12:00:00-05:00(2002 年 10 月 10 日中午、 美国中部夏令时间和东部标准时间)。 等于 2002-10-10T17:00:00Z,比 2002-10-10T12:00:00Z 晚五个小时。
因此,根据我的理解,我需要通过 new Date() 找到本地时间,然后使用 getTimezoneOffset() 函数计算差值,并将其附加到字符串末尾。
1.Get local time with format
var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
输出
2013-07-02T09:00:00
2.Get UTC time offset by hour
var offset = local.getTimezoneOffset() / 60;
输出
7
3.Construct URL (time part only)
var duration = local + "-" + offset + ":00";
输出:
2013-07-02T09:00:00-7:00
上述输出表示我的当地时间是 2013/07/02 上午 9 点,与协调世界时的时差是 7 小时(协调世界时比当地时间早 7 小时)。
目前看来是可行的,但**如果 getTimezoneOffset() 返回负值(如-120)怎么办?
我想知道在这种情况下格式应该是怎样的,因为我无法从 W3C 文档中找到答案。在此先表示感谢。
所有浏览器均可正常使用以下设置(感谢 @MattJohnson 提供的提示)