2016-07-06 2 views
2

У меня есть эта строка:Как удалить строку из строки?

27/06/2016 

или:

15/10/2005 

Мне нужно преобразовать строку выше этого:

27/06/16 

или

15/10/05 

Как ча n Я реализую его в 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-загрузки на вашу страницу несколько тяжелое.cheers –

+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

Это не сработает, потому что (а) даты JS используют месяцы на основе нуля и (b) OP хочет двузначный день и месяц. (Также вы должны проверить, как работают аргументы '.substr()'). – nnnnnn

0

Если вы уверены, что вход всегда будет именно в таком формате, то вы можете сделать это в одной строке с простой строкой регулярных выражений на основе замены:

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

Конечно, вы могли бы сделать регулярное выражение более специфический с \d для цифр, но опять же, если вы знаете, что формат ввода исправлен . отлично работает, чтобы сделать общий «удалить символы третьего и четвертого последних из любой строки».