我在 jquery 中创建了一个导出到 ical 的日历。但是,我在日期时间方面遇到了一些问题。
ical 导出脚本需要以下格式的日期/时间:19970714T170000Z。
有谁知道这是什么以及我应该如何准备我的字符串?
谢谢
阅读 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 ; 当地时间和时间;区域参考
这几乎就像 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'
因此,要回答在 JQuery 中转换为这种格式的问题,您可以执行以下操作。
var n = d.toISOString();