2012-07-16 17 views
28

ho data stringa in questo formato:data di conversione stringa da unix timestamp in JavaScript/jQuery

2009-07-15 00:00:00 - 2009-07-15 08:16:23 

Qualcuno mi potrebbe aiutare a modificare la stringa data unix timestamp in qualcosa di simile a questo:

1247634000 - 1247663783 

Sto usando GMT-5 Fuso orario.

JavaScript o tecniche jQuery sarebbe fantastico! Grazie in anticipo.

risposta

17
var input = "2009-07-15 00:00:00 - 2009-07-15 08:16:23"; 
input = input.split(" - ").map(function (date){ 
    return Date.parse(date+"-0500")/1000; 
}).join(" - "); 

Demo

Date.parse docs

Nota: Questo non funziona su vecchi browser dal momento che sto usando Array.map, ma penso che si dovrebbe facilmente essere in grado di shim esso.

+1

questo non funziona anche o la tua demo in Firefox 19.0.2 – Sergiu

59

Si consiglia vivamente di utilizzare Moment Data lib quando si lavora con date in js. È davvero leggero e fantastico.

var timeStamp = (moment('2009-07-15 00:00:00').unix())*1000 
+2

Questa libreria semplifica la sintassi e la logica. Sembra che valga la pena includere questo con una funzione node.js focalizzata su data/ora. 6 KB minificati, per coloro che sono interessati a includere questo dal lato del browser. – ekillaby

+2

Davvero. Dopo un sacco di difficoltà con le altre risposte quando ho provato 'moment.js', è stata una tranquillità immediata. Benedici la persona che ha creato 'moment.js' !!! – Nav

+1

Funziona anche con NodeJs, il che è un enorme vantaggio. –

15

in Javascript è possibile passare direttamente la stringa costruttore dell'oggetto Date, come

var date = new Date('2009-07-15 00:00:00'.split(' ').join('T'))

che vi darà oggetto Date e per ottenere il timestamp da esso si può fare

date.getTime()/1000

dividendo per 1000 perché getTime darà data e ora in millisecondi

Working Demo

NOTA:

Firefox non è in grado di analizzare il dato formato data e ora, quindi abbiamo bisogno di convertirlo in formato corretto prima, per questo abbiamo solo bisogno di sostituire spazio tra la data e l'ora componente con 'T' che lo rendono un formato ISO 8601 valido e Firefox sarà in grado di analizzarlo

Riferimento:

Date.parse in MDN

ISO 8601 Date Format

Same question asked here

+0

questo non funziona nemmeno o la tua demo in Firefox 19.0.2 – Sergiu

+0

ok, firefox in qualche modo non è in grado di analizzare il dataformat, si aspetta solo uno di questi formati http: // www .w3.org/TR/NOTE-datetime –

+1

controllare il collegamento demo aggiornato funzionerà con firefox aswell –

0

utilizzando il metodo di divisione è possibile cambiare il formiato datetime in fino ad oggi, la sua molto semplice e facile a tutti.

var str = "2017-05-09T00:00:00.000Z"; 
var res = str.split("-",2); 
var res = str.split("T",1); 
var temp=res; 
Problemi correlati