2016-07-06 13 views
2

Ich habe diese Saite:Wie Sub-String aus Zeichenfolge entfernen?

27/06/2016 

oder:

15/10/2005 

Ich brauche die Zeichenfolge oben auf diese konvertieren:

27/06/16 

oder

15/10/05 

Wie ca n Ich implementiere es in Javascript?

+0

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_substring –

Antwort

1

können Sie einfach String-Manipulation Methoden verwenden:

function shortDate(str) 
{ 
    return str.substring(0, 6) + str.substring(8, 10); 
} 

var dt = shortDate('27/06/2016'); 
// returns 27/06/16 
+0

Ich war auf halbem Weg durch die Eingabe einer fast identischen Lösung, als dies erschien! – CompanyDroneFromSector7G

+0

sicher, danke bro;)) –

1

Wenn Sie sicher sind, dass das Datum gültig ist, können Sie diese Funktion verwenden

function formatDate (input) { 
    var datePart = input.match(/\d+/g); 
    year = datePart[2].substring(2); // get only two digits 
    month = datePart[1]; 
    day = datePart[0]; 
    return day+'/'+month+'/'+year; 
} 
1

Sie können dieses Verfahren folgen.

Old_date = '27/06/2016'; 
New_date = Old_date.split('/'); 
New_date[2] = New_date[2].substring(2); 
New_date = New_date.join('/'); 
3

Moment.js die beste Bibliothek ist für Datum Manipulation zu verwenden, tut es dies leicht:

moment('15/10/2005', 'DD/MM/YYYY').format('DD/MM/YY'); 
+1

das ist wirklich gut, wenn Sie Zeitmanipulationen oft brauchen, und nicht zu viele js-Dateien haben, coz Hinzufügen von zusätzlichen 20kb Last auf Ihrer Seite ist etwas schwere Sache.Prost –

+0

und immer noch dies ist eine schöne Lösung –

0
function reformat(dateStr) 
{ 
dArr = dateStr.split("/"); 
return dArr[0]+ "/" +dArr[1]+ "/" +dArr[2].substring(2);  
} 
+0

Erwägen, einen Kommentar zu Ihrer Antwort hinzuzufügen. – HDJEMAI

0

Wenn Sie auf Echtdaten anstelle von Strings arbeiten wollen:

function parseDate(input) { 
    var parts = input.match(/(\d+)/g); 

    return new Date(parts[2], parts[1], parts[0]); 
} 

function formatDate(date) { 
    var day = date.getDate(); 
    var month = date.getMonth(); 
    var year = date.getFullYear().toString().substr(2); 

    return day + '/' + month + '/' + year; 
} 

und dann einfach:

formatDate(parseDate('27/05/2016')); // returns "27/5/16" 
+0

Dies funktioniert nicht, da (a) JS-Daten nullbasierte Monate verwenden und (b) das OP zweistellige Tage und Monate benötigt. (Sie sollten auch überprüfen, wie die Argumente von '.substr()' funktionieren.) – nnnnnn

0

Wenn Sie die Eingabe sicher sind, wird immer in genau dieses Format, dann können Sie es mit einer einfachen Regex-basierten Zeichenfolge in einer Zeile ersetzen:

var output = input.replace(/..(..)$/,"$1"); 

Natürlich könnte man die Regex mehr machen Spezifisch mit \d für Ziffern, aber wieder, wenn Sie wissen, dass das Eingabeformat fest ist . funktioniert gut, um eine generische "entfernen Sie die dritte und viertletzte Zeichen aus einer beliebigen Zeichenfolge".

Verwandte Themen