Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   moment прибавить несколько часов к текущему времени (https://javascript.ru/forum/jquery/70215-moment-pribavit-neskolko-chasov-k-tekushhemu-vremeni.html)

DDim1000 20.08.2017 18:55

moment прибавить несколько часов к текущему времени
 
Здравствуйте!
Подскажите пожалуйста, как, с помощью moment прибавить к текущему времени несколько часов?

Вот так пробую...:

moment.locale('ru');
	       var DateTime = moment().format('DD-MM-YYYY, HH:mm:ss');				
               var CorrDate = DateTime.add(2,'hours');


Но, вот такая ошибка выходит: Uncaught TypeError: DateTime.add is not a function

рони 20.08.2017 19:19

DDim1000,
var CorrDate = moment().add(2,'hours').format('DD-MM-YYYY, HH:mm:ss');

DDim1000 21.08.2017 08:54

РОНИ,
Спасибо!

DDim1000 21.08.2017 10:04

Подскажите еще пожалуйста, почему JS говорить что from() - это не функция?
script.js:377 Uncaught TypeError: UnlockRemindPass.from is not a function

moment.locale('ru');
			    var DateTime = moment().format('DD-MM-YYYY, HH:mm:ss');				
               	var UnlockRemindPass = moment().add(2,'hours').format('HH:mm:ss'); 
			    var UnlockTimeOf = UnlockRemindPass.from(DateTime);

рони 21.08.2017 10:54

DDim1000,
DateTime и UnlockRemindPass это обычные строки после format и никаких функций кроме строковых, у них нет

DDim1000 21.08.2017 14:34

Цитата:

Сообщение от рони (Сообщение 462190)
DDim1000,
DateTime и UnlockRemindPass это обычные строки после format и никаких функций кроме строковых, у них нет

А как тогда узнать и вывести разницу во времени?

рони 21.08.2017 15:00

Цитата:

Сообщение от DDim1000
А как тогда узнать и вывести разницу во времени?

а зачем если разница известна (2 часа)?
но если хочется, уберите форматирование
DDim1000,
var DateTime = moment();
  	var UnlockRemindPass = moment().add(2,'hours');
    var UnlockTimeOf = UnlockRemindPass.from(DateTime) ;
   alert(UnlockTimeOf)

DDim1000 21.08.2017 15:32

Цитата:

Сообщение от рони (Сообщение 462215)
а зачем если разница известна (2 часа)?
но если хочется, уберите форматирование
DDim1000,
var DateTime = moment();
  	var UnlockRemindPass = moment().add(2,'hours');
    var UnlockTimeOf = UnlockRemindPass.from(DateTime) ;
   alert(UnlockTimeOf)

Разницу нужна для информирования пользователя, например, сколько осталось времени до снятия блокировки какого-то его действия.

DDim1000 22.08.2017 12:48

Цитата:

Сообщение от рони (Сообщение 462215)
а зачем если разница известна (2 часа)?
но если хочется, уберите форматирование
DDim1000,
var DateTime = moment();
  	var UnlockRemindPass = moment().add(2,'hours');
    var UnlockTimeOf = UnlockRemindPass.from(DateTime) ;
   alert(UnlockTimeOf)

Извините, я не правильно сформулировал вопрос... Не разницу нужно узнать, а сколько осталось до определенного времени. Если мы прибавим, допустим, к текущему времени 2 часа, то как узнать, сколько осталось времени с текущего момента до полученного времени? Проще сказать, как сделать отсчет времени?

рони 22.08.2017 16:08

таймер на moment.js
 
DDim1000,
возможно в документации есть метод проще

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/locale/ru.js"></script>


</head>

<body>
<p></p>
<script>
moment.locale('ru');
var UnlockRemindPass = moment().add(2,'hours').valueOf();
function fn()
{
var DateTime = moment().valueOf();
var d  = UnlockRemindPass - DateTime;
document.querySelector("p").innerHTML = moment(d).utc().format('HH:mm:ss'); ;
d > 0 && window.setTimeout(fn, 300)
}

fn()

  </script>
</body>
</html>


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