7

我在 jquery 中创建了一个导出到 ical 的日历。但是,我在日期时间方面遇到了一些问题。

ical 导出脚本需要以下格式的日期/时间:19970714T170000Z。

有谁知道这是什么以及我应该如何准备我的字符串?

谢谢

4

3 回答 3

14

阅读 RFC(链接)给出:

3.3.5。约会时间

[...]

日期时间 = 日期“T”时间

“DATE-TIME”值类型以三种形式表示时间值:

表格 #1:带有当地时间的日期 例如,以下表示 1998 年 1 月 18 日晚上 11 点:19980118T230000

FORM #2: DATE WITH UTC TIME CAPITAL LETTER Z 后缀字符,到时间值。
例如,以下表示 1998 年 1 月 19 日 0700 UTC:19980119T070000Z

表格 #3:带有本地时间和时区参考的日期 TZID=America/New_York:19980119T020000

DTSTART:19970714T133000;当地时间 DTSTART:19970714T173000Z ;UTC 时间 DTSTART;TZID=America/New_York:19970714T133000 ; 当地时间和时间;区域参考

于 2012-05-09T18:45:15.827 回答
1

这几乎就像 toISOString

function formatDateTime(date) {
  const year = date.getUTCFullYear();
  const month = pad(date.getUTCMonth() + 1);
  const day = pad(date.getUTCDate());
  const hour = pad(date.getUTCHours());
  const minute = pad(date.getUTCMinutes());
  const second = pad(date.getUTCSeconds());
  return `${year}${month}${day}T${hour}${minute}${second}Z`;
}

function pad(i) {
  return i < 10 ? `0${i}` : `${i}`;
}

// Example:
const date = new Date('2017-05-31T11:46:54.216Z');
date.toISOString()   // '2017-05-31T11:46:54.216Z'
date.toJSON()        // '2017-05-31T11:46:54.216Z'
formatDateTime(date) // '20170531T114654Z'
于 2017-05-31T11:50:24.397 回答
0

因此,要回答在 JQuery 中转换为这种格式的问题,您可以执行以下操作。

var n = d.toISOString();
于 2017-03-08T09:12:05.003 回答