Беда, вычитая время из момента - PullRequest
0 голосов
/ 21 марта 2019

Я работаю над проектом, в котором используется часовой пояс, отличный от того, в котором я сейчас живу:

moment.tz.add("Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -9u -a0|0123141414141414135353|-2um8r.Q 97XV.Q 1m1zu kKo0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6")

Затем отформатировал его так: const kST = moment().tz('Asia/Seoul').format("HH:mm");

Теперь я хочу иметь возможность вычесть год из этого. Глядя на примеры того, как это сделать, я нашел что-то вроде var foo = moment(blah, "HH:mm).subtract(1, "years")

Я предположил, что, поскольку я уже определил момент с помощью «const kST», я мог бы просто заменить «kST» на «момент» следующим образом:

const firstTimeConverted = kST(firstBus, "HH:mm").subtract(1, "years");

К сожалению, это не работает. Любые мысли о том, как я могу это сделать, будут высоко оценены.

1 Ответ

1 голос
/ 21 марта 2019

В вашем коде kST не является функцией - это строка .format возвращает строку, отформатированную так, как указано.

Возможно, вы захотите:

const firstTimeConverted = moment.tz(firstBus, "HH:mm", `Asia/Seoul`).subtract(1, "years");

Это позволит проанализировать строку в вашей переменной firstBus в формате HH:mm (например, "23:45") и интерпретировать как принадлежащий часовому поясу Asia/Seoul на текущую дату.Затем он вычтет год и вернет результат в виде moment объекта.Если вам нужна строка, вам нужно будет вызвать функцию format.

...