所以我有一些时间数据如下:
10:45 PM
11:35 PM
12:06 AM
01:34 AM
所有这些时间都在America/Los_Angeles
,并且每次都保证在此时区的09:00 PM
之后。所以那些过了午夜的时间明天就会发生。
是否有一种优雅的方法可以将这些时间从当前格式转换为moment.js
个对象,并将时间固定到适当的日期。
答案 0 :(得分:15)
function getMomentFromTimeString(str) {
var t = moment(str, 'HH:mm A');
// Now t is a moment.js object of today's date at the time given in str
if (t.get('hour') < 22) // If it's before 9 pm
t.add('d', 1); // Add 1 day, so that t is tomorrow's date at the same time
return t;
}
答案 1 :(得分:11)
答案 2 :(得分:6)
moment('09:00','h:mm a').format('h:mm a');
答案 3 :(得分:0)
您可以使用tz()
方法:
var date = moment().tz("America/Los_Angeles").startOf('day');
date.hour(22);
date.minutes(45);
然后将其转换为当地时间:
date.local().toDate();