Как преобразовать строку во время jQuery. Тут есть несколько способов. Самый неинтересный способ - это разбивать строку по точке и двоеточию.
$(document).ready(function(){
curent_date = '2016-11-27 10:20:17';
curent_date = curent_date.replace("-", "/").replace("-", "/");
curent_date = Date.parse(curent_date);
// получаем unicode время: 1480227617000
curent_date = new Date(curent_date);
// вывод объекта
alert(curent_date);
// минус один месяц
curent_date = new Date(2016, 11, 10, 13, 30);
var a = curent_date.setMonth(curent_date.getMonth() - 1);
var b = new Date(a);
// вывод объекта
alert(b);
});
Рассмотрим пример. У нас есть строка '2016-11-27 10:20:17'. Бить по элементам мы не будем. Нужно заменить тире на правый слеш. Нам поможет функция replace(). Дважды меняем тире curent_date.replace("-", "/").replace("-", "/"). После того как замена элементов произошла, то воспользуемся функцией parse(). Далее мы должны вставить юникод-время в конструктор new Date(). В результате получается объект времени, а не строка.
Хочу показать вам как прибавить 1 месяц к дате. Воспользуемся конструктором new Date(2016, 11, 10, 13, 30). Теперь отнимем один месяц curent_date.setMonth(curent_date.getMonth() - 1). Функция getMonth() выведет номер месяца. Далее функция setMonth() установит новый новое значение для месяца.
Хочу показать способ преобразования полной даты в объект времени. Мы преобразуем строку в дату, а затем снова в строку (день.месяц.год часы:минуты:секунды). Если лишить функцию условий if-else, то будет вместо 00:00:00 непонятное значение 0:0:0. О работе со временем читайте в статье как работать с временем в jQuery.
var d = new Date('Fri Nov 10 2017 07:41:21 GMT+0300');
function formatDate(d) {
var date = (d.getDate() / 10 < 1) ? "0" + d.getDate() : d.getDate();
var month = (d.getMonth() / 10 < 1) ? "0" + ( d.getMonth() + 1) : d.getMonth() + 1;
var year = d.getFullYear();
var hours = (d.getHours() / 10 < 1) ? "0" + d.getHours() : d.getHours();
var minutes = (d.getMinutes() / 10 < 1) ? "0" + d.getMinutes() : d.getMinutes();
var seconds = (d.getSeconds() / 10 < 1) ? "0" + d.getSeconds() : d.getSeconds();
return date + "." + month + "." + year + ' ' + hours + ':' + minutes + ':' + seconds;
}
var value = formatDate(d);
console.log(value);
/*
вывод:
10.11.2017 07:41:21
*/