相关疑难解决方法(0)

如何在JavaScript中使用ISO 8601格式化带有时区偏移的日期?

目标:找到local timeUTC time offset以下列格式构建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晚5个小时.

所以基于我的理解,我需要通过新的Date()找到我的本地时间,然后使用getTimezoneOffset()函数来计算差异,然后将它附加到字符串的末尾.

1.以格式获取当地时间

var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
Run Code Online (Sandbox Code Playgroud)

产量

2013-07-02T09:00:00
Run Code Online (Sandbox Code Playgroud)

2.以小时为单位获取UTC时间偏移量

var offset = local.getTimezoneOffset() / 60;
Run Code Online (Sandbox Code Playgroud)

产量

7
Run Code Online (Sandbox Code Playgroud)

3.Construct URL(仅限时间部分)

var duration = local + "-" + offset + ":00";
Run Code Online (Sandbox Code Playgroud)

输出:

2013-07-02T09:00:00-7:00
Run Code Online (Sandbox Code Playgroud)

以上输出结果表示我的当地时间是2013/07/02 9am,与UTC的差异是7小时(UTC是比当地时间早7小时)

到目前为止它似乎工作,但如果getTimezoneOffset()返回负值如-120怎么办?

我想知道在这种情况下格式应该是什么样的,因为我无法从W3C文档中找到答案.提前致谢.

javascript timezone date-formatting

90
推荐指数
7
解决办法
12万
查看次数

标签 统计

date-formatting ×1

javascript ×1

timezone ×1