Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена даты - Помогите (https://javascript.ru/forum/misc/48910-zamena-daty-pomogite.html)

zoOmer 21.07.2014 20:27

Замена даты - Помогите
 
Ребят есть функция замены даты и времени
function newDate(str) {return str.replace(/(\d\d)\.(\d\d)\.(\d\d)\s-\s/,'$1 ' + ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'][/\d\d\.(\d\d)\.\d\d\s-\s/.exec(str)[1] - 1] + ' 20$3 в ');}


В результате полученную дату и время 01.01.13 - 23:19 заменит на 01 января 2013 в 23:19.

Вопрос как сделать аналогичную функцию только для даты без времени?

Заранее огромное спасибо)

Aetae 21.07.2014 21:32

function newDate(str){
  return str.replace(/(\d\d)\.(\d\d)\.(\d\d)/, function(str, dd, mm, yy){
    return dd + ' ' + ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'][mm-1] + ' 20' + yy
  });
}
alert(newDate('01.01.13'))

zoOmer 22.07.2014 01:20

Aetae, Спасибо но есть одно но если дата к примеру 1971, то добавляет 20.
Если убрать из кода 20 то 1971 год выводит нормально а вот 2014 выводит просто 14.

Aetae 22.07.2014 03:07

zoOmer, ну а откудыть бы я угадал такие детавли?)
function newDate(str){
  return str.replace(/(\d\d)\.(\d\d)\.(\d{2,4})/, function(str, dd, mm, yy){
    return dd + ' ' + ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'][mm-1] + [' 20', ' '][yy.length>>2] + yy;
  });
}
alert([
  newDate('01.01.13'),
  newDate('01.01.1913')
])

zoOmer 23.10.2015 18:39

А, подскажите как теперь сделать не даты а времени из скрипта в первом посте?


Часовой пояс GMT +3, время: 00:12.