Преобразование HH: mm в Moment.js
Итак, у меня есть данные времени, например:
10:45 PM
11:35 PM
12:06 AM
01:34 AM
Все эти времена находятся в America/Los_Angeles
, и каждый раз, как гарантируется, будет после 09:00 PM
сегодня в этот часовой пояс. Так что завтра будут дни, которые пройдут за полночь.
Есть ли элегантный способ преобразования этих времен из текущего формата в объекты moment.js
со временем, привязанным к соответствующему дню.
Ответы
Ответ 1
function getMomentFromTimeString(str) {
var t = moment(str, 'HH:mm A');
// Now t is a moment.js object of today date at the time given in str
if (t.get('hour') < 22) // If it before 9 pm
t.add('d', 1); // Add 1 day, so that t is tomorrow date at the same time
return t;
}
Ответ 2
Найдено в момент .js doc:
moment('10:45 PM', 'HH:mm a')
http://momentjs.com/docs/#/parsing/string-format/
Ответ 3
moment('09:00','h:mm a').format('h:mm a');
Ответ 4
Вы можете использовать метод tz()
:
var date = moment().tz("America/Los_Angeles").startOf('day');
date.hour(22);
date.minutes(45);
Затем преобразуйте его в локальное время:
date.local().toDate();