Клуб API Карт

Изменение времени GPX

Пост в архиве.

Добрый день!

Вывожу стандартный GPX файл, но заменяю стандартные балуны на слегка обрезанные (вырезал скорость) 

var myBalloonLayout = ymaps.templateLayoutFactory.createClass(
   '<b>$[properties.name]</b>' +
   '[if properties.description]<br/>$[properties.description][endif]' +
   '[if properties.time]<br/>Время: $[properties.time][endif]');

 

все работает, а как вот поменять формат вывода даты, т.е. сейчас это в длинном виде показывается типа "воскресенье, 22 сентября 2013 г. 11:42:52", а мне нужно только время, как туда преобразователь добавить? Извиняюсь если это просто, но что-то я подвис...

Спасибо.

4 комментария

Можно определить метод build у вашего макета и в нем переопределить поле time в данных, с нужным значением.

Ок, получил что-то похожее, т.е. данные вроде получаю

var myBalloonLayout = ymaps.templateLayoutFactory.createClass(

     '', { build: function () {
                       myBalloonLayout.superclass.build.call(this);
                       var parent = this.getParentElement() ;
                       var prop = this.getData().properties;
                       var content = "Name: " + prop.name + "
Time: " + prop.time;
                       parent.innerHTML = content;

        } } ) ;

Т.е. это криво или нормально, как вы и советовали?

И самое главное, если это нормально, то как теперь правильно резануть дату оттуда, ведь this.getData().properties.time приходит строкой в локальном формате, резануть то я могу придумать как, но вот чтоб резануть правильно и для всех браузеров правильно подскажите пожалуйста (... и покраснел весь....))))

Не, самому в HTML ничего не надо вставлять. У вас же шаблон написан.

Типа того:

myBalloonLayout.superclass.build.call(this);

var props = this.getData().properties,

      time = props.get('time');

 

props.set('time', time.match(/\d+:\d+:\d+$/)[0]);

Спасибо, теперь все ясно.