icalにエクスポートするカレンダーをjqueryで作成しました。ただし、日時に問題があります。
icalエクスポートスクリプトは、次の形式の日付/時刻を想定しています:19970714T170000Z。
誰かがこれが何であるか、そして私が私の弦をどのように準備するべきか知っていますか?
ありがとう
RFC(リンク)を読むと、次のようになります。
3.3.5。日付時刻
[...]
日時=日付「T」時刻
「DATE-TIME」値タイプは、時刻値を次の3つの形式で表します。
フォーム#1:現地時間の日付たとえば、以下は1998年1月18日の午後11時を表します:19980118T230000
フォーム#2: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'