将HH:mm转换为Moment.js

时间:2014-04-25 01:12:52

标签: javascript momentjs

所以我有一些时间数据如下:

10:45 PM
11:35 PM
12:06 AM
01:34 AM

所有这些时间都在America/Los_Angeles,并且每次都保证在此时区的09:00 PM之后。所以那些过了午夜的时间明天就会发生。

是否有一种优雅的方法可以将这些时间从当前格式转换为moment.js个对象,并将时间固定到适当的日期。

4 个答案:

答案 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)

发现于moment.js doc:

moment('10:45 PM', 'HH:mm a')

http://momentjs.com/docs/#/parsing/string-format/

答案 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();