2012-05-09 17 views
6

Ho creato un calendario in jquery che esporta in ical. Tuttavia, sto avendo alcuni problemi con il datetime.Tempo di formattazione per esportazione ical

Lo script di esportazione ical prevede la data e l'ora in questo formato: 19970714T170000Z.

Qualcuno sa cosa sia e come dovrei preparare la mia stringa?

Grazie

risposta

9

Leggendo la RFC (link) dà:

3.3.5. Data-Ora

[...]

data-ora = Data Ora "T"

la "data-TIME" tipo di valore esprime i valori di tempo in tre forme:

FORM # 1: DATA CON ORA LOCALE ad esempio, il seguente rappresenta il 18 gennaio 1998 alle 11:00: 19980118T230000

FORM # 2: data con orario UTC CAPITALE lettera Z carattere suffisso, alla TIM valore
Ad esempio, il seguente rappresenta 19 gennaio 1998, alle 0700 UTC: 19980119T070000Z

FORM # 3: DATA CON ORA LOCALE E ORA zona di riferimento TZID = America/New_York: 19980119T020000

dtstart: 19970714T133000 ; Ora locale DTSTART: 19970714T173000Z; Ora UTC DTSTART; TZID = America/New_York: 19970714T133000 ; Ora locale e ora ; zona di riferimento

0

Quindi per rispondere alla domanda di conversione in questo formato in JQuery è possibile eseguire quanto segue.

var n = d.toISOString(); 
-1

E 'quasi come 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'