web-dev-qa-db-ja.com

HH:mmをMoment.jsに変換する

したがって、次のような時間データがいくつかあります。

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

これらの時間はすべてAmerica/Los_Angelesであり、各時間はその時間帯の今日の09:00 PMの後にあることが保証されています。そのため、明日は深夜0時を過ぎています。

これらの時間を現在の形式から適切な日に固定されたmoment.jsオブジェクトに変換するエレガントな方法はありますか。

17
Richard
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;
}
15
Geoffrey Booth

Moment.js docにあります:

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

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

13
KokaKiwi
moment('09:00','h:mm a').format('h:mm a');
8
José Farías

tz()メソッドを使用できます:

var date = moment().tz("America/Los_Angeles").startOf('day');
date.hour(22);
date.minutes(45);

次に、それを現地時間に変換します。

date.local().toDate();
0
Aryeh Armon