目标:找到本地时间和UTC时间偏移,然后按以下格式构造URL。
示例 URL:/Actions/Sleep?duration=2002-10-10T12:00:00−05:00
该格式基于 W3C 推荐。文档说:
例如,2002-10-10T12:00:00−05:00(2002 年 10 月 10 日中午, 中部夏令时以及美国东部标准时间) 等于 2002-10-10T17:00:00Z,比 2002-10-10T12:00:00Z 晚五个小时。
因此,根据我的理解,我需要通过 new Date() 查找本地时间,然后使用 getTimezoneOffset() 函数计算差异,然后将其附加到字符串末尾。
使用 format 获取当地时间
var local = new Date().format("yyyy-MM-ddThh:mm:ss"); // 2013-07-02T09:00:00
获取 UTC 时间偏移量
var offset = local.getTimezoneOffset() / 60; // 7
构造 URL(仅限时间部分)
var duration = local + "-" + offset + ":00"; // 2013-07-02T09:00:00-7:00
上面的输出意味着我的当地时间是2013年7月2日上午9点,与UTC相差7个小时(UTC比当地时间早7个小时)
到目前为止,它似乎有效,但是如果 getTimezoneOffset() 返回负值(例如 -120)怎么办?
我想知道在这种情况下格式应该是什么样子,因为我无法从 W3C 文档中弄清楚。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这是一个简单的辅助函数,可以为您格式化 JS 日期。
function toIsoString(date) { var tzo = -date.getTimezoneOffset(), dif = tzo >= 0 ? '+' : '-', pad = function(num) { return (num