2016-04-18 7 views
-1

Ich habe JavaScript-Funktion namens updateLatestDate, die als Parameter Array von Objekten erhalten.Wie ignoriert man die Zeitzone am neuen Date()?

Eine der Eigenschaften des Objekts in Array ist die MeasureDate Eigenschaft des Datumstyps. Die Funktion updateLatestDate gibt das letzte im Array vorhandene Datum zurück. Hier

ist die Funktion:

function updateLatestDate(sensorsData) { 
    return new Date(Math.max.apply(null, sensorsData.map(function (e) { 
     return new Date(e.MeasureDate); 
    }))); 
} 

Und hier ist das Beispiel der Parameter, die Empfangsfunktion:

[{ 
    "Address": 54, 
    "AlertType": 1, 
    "Area": "North", 
    "MeasureDate": "2009-11-27T18:10:00", 
    "MeasureValue": -1 
    }, 
    { 
    "Address": 26, 
    "AlertType": 1, 
    "Area": "West", 
    "MeasureDate": "2010-15-27T15:15:00", 
    "MeasureValue": -1 
    }, 
    { 
    "Address": 25, 
    "AlertType": 1, 
    "Area": "North", 
    "MeasureDate": "2012-10-27T18:10:00", 
    "MeasureValue": -1 
    }] 

Die Funktion updateLatestDateMeasureDate Wert des letzten Objekts im Array zurück.

Und es wird so aussehen:

var latestDate = Sat Oct 27 2012 21:10:00 GMT+0300 (Jerusalem Daylight Time) 

Wie Sie die Zeit des zurückgegebenen Ergebnisses sehen unterscheidet sich von der Zeit des Eingangs Objekts.Verfahren Zeit nach GMT geändert.

Aber ich möchte nicht die Zeit nach GMT geändert werden.

Das gewünschte Ergebnis ist:

var latestDate = Sat Oct 27 2012 18:10:00 

Jede Idee, wie kann ich die Zeitzone zu ignorieren, wenn Datum von updateLatestDate Funktion zurückgegeben?

Vielen Dank im Voraus.

+0

Was meinen Sie, wenn es so aussehen? In deinem Debogguer? In was der Benutzer sehen? – Walfrat

+0

Verwenden Momentbibliothek es ist die beste – Devank

+0

@Walfrat yeas in debugger.Later Ich sende den Wert an den Server – Michael

Antwort

2

Wie Frz Khan wies darauf hin, du kannst das benutzen. toISOString() Funktion, wenn das Datum von Ihrer Funktion zurückkehren, aber wenn Sie das UTC-Format suchen sind, verwenden Sie die .toUTCString(), wäre es Ausgabe etwas wie Mon, 18 Apr 2016 18:09:32 GMT

function updateLatestDate(sensorsData) { 
    return new Date(Math.max.apply(null, sensorsData.map(function (e) { 
     return new Date(e.MeasureDate).toUTCString(); 
    }))); 
} 
0

Wenn Sie Moment verwenden wird es

moment('Sat Oct 27 2012 21:10:00 GMT+0300', 'ddd MMM DD DDDD HH:mm:SS [GMT]ZZ').format('ddd MMM DD YYYY HH:mm:SS') 
1

Die Date.toISOString() Funktion ist, was Sie brauchen diese versuchen:

var d = new Date("2012-10-27T18:10:00"); 
d.toISOString(); 

Ergebnis:

"2012-10-27T18:10:00.000Z" 
+0

an welchem ​​Punkt muss ich es verwenden? – Michael

Verwandte Themen