2012-05-09 18 views
6

He creado un calendario en jquery que exporta a ical. Sin embargo, tengo algunos problemas con la fecha y hora.Tiempo de formateo para exportación ical

El script de exportación ical espera la fecha/hora en este formato: 19970714T170000Z.

¿Alguien sabe qué es esto y cómo debo preparar mi cadena?

Gracias

Respuesta

9

Lectura de la RFC (link) da:

3.3.5. Fecha-Hora

[...]

fecha-hora = fecha de tiempo "t"

El tipo de valor "fecha y hora" expresa los valores de tiempo de tres formas:

FORMA # 1: FECHA HORA LOCAL cON Por ejemplo, la siguiente representa el 18 de enero de 1998 a las 11 PM: 19980118T230000

FORMA # 2: FECHA cON TIEMPO GMT LETRA Z carácter sufijo, al TIM valor de e
Por ejemplo, la siguiente representa el 19 de enero de 1998 a 0700 UTC: 19980119T070000Z

FORM # 3: FECHA CON hora local y la REFERENCIA ZONA TZID = America/New_York: 19980119T020000

DTSTART: 19970714T133000 ; Hora local DTSTART: 19970714T173000Z; Hora UTC DTSTART; TZID = America/New_York: 19970714T133000 ; Hora y hora local ; referencia de zona

0

Así que para responder la pregunta de convertir a este formato en JQuery, puede hacer lo siguiente.

var n = d.toISOString(); 
-1

Es casi como 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'