2010-02-10 9 views

Antwort

10

Das folgende ist eine Option:

var myString = "Mar 16, 2010 00:00 AM"; 

myString = myString.substring(0, 13) + 
      "12" + 
      myString.substring(15, myString.length); 

Beachten Sie, dass, wenn Sie diese verwenden wollen Daten zu manipulieren, würde es einige Daten Manipulationsmethoden empfohlen werden, anstatt zu verwenden, wie sie in DateJS.

1

Sie direclty replace() Methode zusammen mit indexOf() von Zeichenfolge in Javascript verwenden können.

+0

Können Sie ein Beispiel näher erläutern? –

5

Eine Option wäre

>>> var test = "Mar 16, 2010 00:00 AM"; 
>>> test.replace(test.substring(13,15),"12") 
+1

Würde das nicht geben "16. März 2010 12:12"? Du könntest es in 'test.replace (teststring (13,16)," 12: ") ändern' 'Ich denke (ähnlich wie die Methode von Haim). –

+1

@Dominic: Guter Punkt, aber tatsächlich wird es in diesem Fall korrekt ersetzen, weil die JavaScript replace() -Methode nur das erste Vorkommen ersetzt. Aber wenn das Datum "16. März 2000" wäre, hätte es nicht funktioniert. –

+0

@Daniel - interessant - scheint wie eine seltsame Implementierung von String :: ersetzen. Danke für die Korrektur! –

3

sein, wenn es immer 00: in Stunden,

Sie können 00: nur ersetzen mit 12:

replace() verwenden,

wenn nicht u finden müssen die indexOf die : Zeichen,

und ersetzen Sie dann 2 Stellen zuvor mit 12.

4

Ein regex Ansatz

"Mar 16, 2010 00:00 AM".replace(/(.{13}).{2}/,"$112") 
Mar 16, 2010 12:00 AM 
+0

Ich mag diesen Ansatz, aber wenn jemand über die Leistung besorgt ist hier ist ein Test Vergleich: http://jsperf.com/substring-replace – user1510539

+1

Recht, Regex sind in der Regel langsamer. Das werde ich 2016 nicht nutzen. – YOU

Verwandte Themen