Красивые диапазоны времени печати с moment.js

У меня есть два объекта момента, один из которых представляет начальную дату и время, а другой - конечную дату и время.

В настоящее время я показываю время этих объектов следующим образом:

12:00pm - 12:30pm

Однако я хочу отформатировать их таким образом, чтобы, если время выпадает на час, минуты исключались, и аналогичным образом скрывался индикатор am/pm с первого раза, если оба времени приходятся на один и тот же период. Например:

12 - 1pm
10.30am - to 2.30pm

Я наткнулся на moment-range, но не похоже, чтобы он предоставлял какие-либо удобные функции форматирования. . Есть ли другой способ добиться такого поведения, используя момент или другой плагин?


person Luke Ferguson    schedule 18.03.2014    source источник


Ответы (1)


Moment.js — фантастическая библиотека, поэтому приятно использовать библиотеку, которая находится поверх нее. Twix.js должен справиться с вашими потребностями.

http://isaaccambron.com/twix.js/

Из раздела «Умное форматирование» на этой странице:

moment("1/25/1982 9:00 AM").twix("1/25/1982 11:00 AM").format();  //=> 'Jan 25, 1982, 9 - 11 AM'
moment("1/25/1982 9:00").twix("1/26/1982 13:00").format(); //=> 'Jan 25, 9 AM - Jan 26, 1 PM, 1982'

Похоже, что есть множество модификаторов, которые вы можете использовать, так что, если вас больше интересуют временные диапазоны, а не диапазоны дат, вы можете опустить дневную часть результирующей строки.

person ardrian    schedule 19.03.2014
comment
Это выглядит великолепно! Спасибо! - person Luke Ferguson; 20.03.2014