2012-05-09 23 views
6

Stworzyłem kalendarz w jquery, który eksportuje do ical. Jednak mam pewne problemy z datetime.Formatowanie dla eksportu ical

Skrypt eksportu ical oczekuje daty/czasu w tym formacie: 19970714T170000Z.

Czy ktoś wie, co to jest i jak powinienem przygotować sznur?

Dzięki

Odpowiedz

9

Czytanie RFC (link) daje:

3.3.5. Date-Time

[...]

date = data-czas "T" czas

"Data-TIME" typ wartości wyraża wartości czasu w trzech postaciach:

FORM # 1: DATE WITH lokalny Czas na przykład poniższy reprezentuje 18 stycznia 1998, o godzinie 11 po południu: 19980118T230000

FORMULARZ nr 2: DATE WITH czas UTC LITERA z przyrostkiem charakteru, do tim e wartość.
Na przykład poniższy reprezentuje 19 stycznia 1998, w 0700 UTC: 19980119T070000Z

FORM # 3: DATA z lokalnymi czas i czas strefy odniesienia TZID = Ameryka/New_York: 19980119T020000

dtstart: 19970714T133000 ; Czas lokalny DTSTART: 19970714T173000Z; Czas UTC DTSTART; TZID = Ameryka/Nowy rok: 19970714T133000 ; Lokalny czas i czas ; numer referencyjny strefy

0

Aby odpowiedzieć na pytanie o konwersję do tego formatu w JQuery, możesz wykonać następujące czynności.

var n = d.toISOString(); 
-1

To prawie jak 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'