2015-11-22 17 views
7

volta Ho codice JSON:stringa di convertire in reale data e ora

{ "time":"2015-10-20T11:20:00+02:00" } 

ho letto che JSON dal mio script e l'uscita in tabella è:

2015-10-20T11:20:00+02:00 

Tuttavia voglio l'uscita sia uguale a quel giorno e al suo tempo.

Per esempio: mar 20:00 (fuso orario se il mio è +02)

risposta

7

È possibile formattare le date in questo modo:

var date = new Date('2015-10-20T11:20:00+02:00'); 
var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; 
var output = days[date.getDay()] + ' ' + date.getHours() + ':' + date.getMinutes(); 
console.log(output); 
// Tue 6:20 
3

Nella mia esperienza, il modo più pulito per affrontare Data e Il tempo è usando moment.js. A proposito, incoraggerò a memorizzare sempre i dati datetime in UTC e lasciare il browser locale per visualizzarli nel fuso orario locale.

Per format il vostro input è possibile effettuare le seguenti operazioni:

var vrijeme = "2015-10-20T11:20:00+02:00", 
 
    date = moment(vrijeme, moment.ISO_8601); 
 

 

 
var formatted = date.format('ddd h:mm'); 
 
console.log(formatted); // open the console with F12 to see the results
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>

+0

Nella mia esperienza di archiviazione come UTC funziona bene quando si memorizzano punti nel tempo (principalmente nel passato). Per le date future è spesso necessario archiviare il tempo previsto dall'utente insieme a una designazione del fuso orario (come "Europa/Berlino") poiché non è possibile convertire in modo affidabile tra quello e l'UTC per le date future. – CodesInChaos

1

È possibile ottenere senza l'utilizzo di giorni gamma

function getTwoDigitValue(str) { 
 
    return str.toString().length == 1 ? "0" + str : str; 
 
} 
 

 
(function() { 
 
    var date = new Date('2015-10-20T11:20:00+02:00'); 
 
    var output = date.toString().split(" ")[0] + " " + 
 
    getTwoDigitValue(date.getHours()) + ":" + 
 
    getTwoDigitValue(date.getMinutes()); 
 

 
    console.log(output) 
 
})()