Как работать с Moment. js для возврата времени в 24-часовом формате при добавлении к нему? - PullRequest
1 голос
/ 21 апреля 2020

Я получаю часы в виде строк в моем приложении, например, "2230". Я хотел бы иметь возможность добавить минуты к нему, чтобы имитировать время, которое будет после того, как эти минуты были добавлены к нему, например,

//"2230" + "60"mins = "23:30"
//"2230" + "180"mins = "02:30" 

Я прочитал этот момент. js мог быть решением этой проблемы, но я не мог понять:

  1. как правильно отформатировать часы с помощью moment("2230").format()

  2. как добавить к нему минуты

  3. как заставить его вести себя как 24-часовые часы при добавлении к нему

Ответы [ 2 ]

3 голосов
/ 21 апреля 2020

Момент отличный инструмент для этого. Требуются некоторые синтаксические приемы, чтобы понять это правильно, но я думаю, это то, что вы ищете:

moment("2230", "HH:mm")
  .add(60, "minutes")
  .format("HH:mm")

Не стесняйтесь поиграть с этим здесь: https://codesandbox.io/s/proud-pine-lz0fs?file= / src / index . js

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

Вот 2 замечательных ресурса:

https://techstream.org/Bits/Javascript/Javascript-Parse-time

https://flaviocopes.com/momentjs/

Надеюсь, это поможет!

1 голос
/ 21 апреля 2020

Сначала вы должны разделить эту строку, чтобы получить от нее часы и минуты.

const s= "2230"
const hour = s.substring(0,2);
const min = s.substring(2,4);

После этого вы можете легко передать эти часы и минуты мгновению.

const time = moment()
.set({"hour": hour, "minute": min})
.add(60, 'minutes')
.format("HH:mm");

.set - это установка времени (часов, минут)

.add - добавление минут, которые вы хотели добавить

.format - форматирование вывода по вашему усмотрению, ПРИМЕЧАНИЕ прописная буква «ЧЧ» означает 24 часа в час, а «чч» означает 12 часов в час

...