2016-07-06 237 views
2

我有這個字符串:如何從字符串中刪除子字符串?

27/06/2016 

或:

15/10/2005 

我需要轉換上面的字符串到這一點:

27/06/16 

15/10/05 

如何CA ñ我在Javascript中實現它?

+0

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

回答

1

您可以使用簡單的字符串操作方法:

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

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

當出現這種情況時,我已經輸入了近乎完全相同的解決方案了! – CompanyDroneFromSector7G

+0

當然,非常感謝兄弟)) –

1

如果您是確保日期是有效的,你可以使用此功能

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

您可以按照此過程。

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是使用日期操控最好的圖書館,它這樣做很容易:

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

這是非常好的,當你需要時間操縱經常,並沒有太多的js文件,因爲增加額外的20kb負載到你的頁面是有點沉重的事情。歡呼聲 –

+0

仍然這是美麗的解決方案 –

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

考慮添加一些評論給你的答案。 – HDJEMAI

0

如果你想在真正的日期,而不是字符串的工作:

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; 
} 

然後簡單地:

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

這是行不通的,因爲(a)JS日期使用基於零的月份,以及(b)OP需要兩位數的日期和月份。 (你也應該檢查'.substr()'的參數是如何工作的。) – nnnnnn

0

如果您確定輸入始終處於正是格式,那麼你可以用一個簡單的基於正則表達式的字符串做在同一行替換:

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

當然,你可以使正則表達式更具體與\d爲數字,但如果你知道輸入格式是固定的.再次工作正常做一個通用的「從任何字符串中刪除第三和第四個字符」。

相關問題