Hirdetés

Új hozzászólás Aktív témák

  • Sk8erPeter
    nagyúr

    Hali.

    Javascript dátum átalakítással van problémám.
    Van egy szimpla datetime-om, ami a MySql-es adatbázisból jön.
    JSON formátuma ez: 2014-12-20T22:10:00+0100
    Ez melyik formátum? Hogyan lehet átalakítani Javascript Date-té? (Mert ugyanis szeretnék a mostani időhöz képest óra különbséget megjeleníteni). Nézegettem Online, de ilyen formátumra nem találtam még átalakítaást. Szerintem ez az ISO 8601-nek kellene lennie, de ha ezt most belerakom egy:
    new Date("2014-12-20T22:10:00+0100"); -be
    Akkor egy ilyet kapok:
    Fri Sep 30 60225 19:45:00 GMT+0200 (CEST). Amit nem értek. Date.Parse-vel nem jöttem rá, hogyan kéne használni, mert invalidokat dob.
    A new Date(); -re pedig ezt kapom: 2014-12-20 13:50:38 +0100, és amit látok, hogy az én JSON-ben lévő dátumomhoz képest egy T és egy space különbség van. Esetleg kezdjem el sztringként átformázni? :R

    ISO 8601 szabvány szerinti formátumban kapod meg a dátumot. Természetesen mint megszokhattuk, itt is problémás a dátumkezelés, mint úgy általában JavaScriptben, úgyhogy a megbízható megoldás tényleg csak az, hogy felszabdalod a stringet:
    http://dev.enekoalonso.com/2010/09/21/date-from-iso-8601-string/

    function dateFromISO8601(isostr) {
    var parts = isostr.match(/\d+/g);
    return new Date(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]);
    }

    Esetedben tehát:

    var myDateString = "2014-12-20T22:10:00+0100";
    var myDate = dateFromISO8601(myDateString);
    console.log('myDate: ', myDate);

    Példa:
    http://jsfiddle.net/Sk8erPeter/ryfrqqoc/

Új hozzászólás Aktív témák