2016-07-06 143 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为数字,但如果你知道输入格式是固定的.再次工作正常做一个通用的“从任何字符串中删除第三和第四个字符”。