Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2018, 10:12
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Вопрос по поводу new Date()
Добрый день, подскажите почему меняется дата если прописывать новый параметр в условии if:
var dateString = '2018-25-10 10:10:24'; //некая дата
dateString = new Date(dateString.replace(/(\d+)-(\d+)-(\d+)/, '$3/$2/$1'));
alert (dateString );
if(dateString.setSeconds(dateString.getSeconds() + 60) >= new Date()){

}

alert (dateString ); //почему здесь дата изменилась?


Например, даже если я явно напишу так, почему в dateString дата изменилась, изменялась же только в переменной?

var dateString = '2018-25-10 10:10:24'; //некая дата
dateString = new Date(dateString.replace(/(\d+)-(\d+)-(\d+)/, '$3/$2/$1'));

alert (dateString );

var test = dateString.setSeconds(dateString.getSeconds() + 60);

alert (dateString ); //почему здесь дата изменилась, изменялась же только в переменной?

Как это все исправить, чтобы не менялось изначальное dateString , если я просто прибавляю секунды к этой дате?

И еще вопрос, как сделать чтобы если дату присвоить переменной чтобы оно его не изменяло, остался вид:
Thu Oct 25 2018 10:10:24 GMT+0300 (Москва, стандартное время)
а не:
1540451460000
var dateString = '2018-25-10 10:10:24'; //некая дата
dateString = new Date(dateString.replace(/(\d+)-(\d+)-(\d+)/, '$3/$2/$1'));

alert (dateString );
var test = dateString.setSeconds(dateString.getSeconds() + 60);

alert (test );

Последний раз редактировалось Artur_Hopf, 25.10.2018 в 10:29.
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2018, 10:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Artur_Hopf
почему в dateString дата изменилась
Потому, что dateString = new Date ... И вообще-то https://developer.mozilla.org/ru/doc...cts/Date/parse вместо replace.
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2018, 10:43
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

laimas,
Если так напишу то правильно:
var dateString = '2018-25-10 10:10:24';
dateString  = Date.parse(dateString.replace(/(\d+)-(\d+)-(\d+)/, '$3/$2/$1'));
if(dateString + 60 //так правильно?

Если просто напишу Date.parse(dateString ) прилетит Nan:
var dateString = '2018-25-10 10:10:24';
dateString  = Date.parse(dateString);
alert(dateString  );
Ответить с цитированием
  #4 (permalink)  
Старый 25.10.2018, 11:49
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Написал так, вроде работает
var d1 = '2018-10-25 10:10:24';
d1 = new Date(Date.parse(d1));
alert(d1);
var data1 = d1.setSeconds(d1.getSeconds() + 60);
if(data1 )//как то так
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать тест на JavaScript для сайта usit46 Элементы интерфейса 4 11.01.2018 13:38
Не могу поставить текущую дату в тэг Date! Aleksandr Chirkov (X)HTML/CSS 11 27.10.2017 23:25
ВОпРОС пО пОВОДУ АВТОРИЗАЦИИ Геворг Серверные языки и технологии 5 22.03.2011 09:51
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Вопрос по поводу jqGrid Vasiliusis Библиотеки/Тулкиты/Фреймворки 2 26.11.2010 17:58