d3js v4 - точность кисти, как получить миллис

1

Как я могу получить выбранную дату с миллисекундами?

Я хочу формат UTC ISO 8601 (% Y-% m-% dT% H:% M:% S.% LZ)

let e = d3.event.selection.map(x3.invert);
let s = d3.event.selection || x3.range();
console.log(e[0], e[1]); 
console.log(s[0], s[1]);

// Sun Jul 23 2017 13:32:33 GMT-0300 (-03) Fri Oct 13 2017 08:27:54 GMT-0300 (-03)
// 1037.59375 1040.59375

текущий формат

Я использую функцию timeParse для генерации строк и точек:

parseDate = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ");

Из объекта данных:

lines: [[[1467341999153,0,5],5,10,15,20,25,30,35,40,45,50,60,70,...
// The first point of each line is an array: 
// [unix epoch (milliseconds), Y Value, interval (milliseconds) between each point of the line]

Функция для форматирования миллиса в ISOString из объекта данных

let calcDate = function(baseDate, frequencyDate, dateMultiplier) {
     let _ms = baseDate+(frequencyDate*dateMultiplier);
     let _date = new Date(_ms);
     return _date.toISOString()
}


let lineFunction = d3.line()
    .defined(function(d) { return d; })
    .x(function(d,i) {
          if (Array.isArray(d)) {
               _dateMultiplier = 0;
               _frequencyDate = d[2];
               _baseDate = d[0];
               return x(parseDate(calcDate(_baseDate, _frequencyDate, _dateMultiplier)))
          } else {
               _dateMultiplier++;
               return x(parseDate(calcDate(_baseDate, _frequencyDate, _dateMultiplier)))
          };
    })

Спасибо!

Теги:
d3.js
date

1 ответ

1
Лучший ответ

РЕШИТЬ! Это очень просто! Просто скрытое использование.toISOString()

console.log(e [0].toISOString(), e [1].toISOString());

Спасибо

  • 0
    Если это ответ, пожалуйста, примите это.
  • 0
    toISOString выполняет преобразование на основе часового пояса клиента. Я использовал библиотеку moment.js для преобразования именно того, что я получил с помощью кисти. momentjs.com момент (е [0]) формат ( "ГМД HH: мм: СС.ссс ZZ"). Момент (е [1]) формат ( "ГМД HH: мм: СС.ссс ZZ"). Если кто - нибудь знает Как сделать преобразование с чистым JavaScript (мне нужна удобочитаемая дата с миллисекундами), пожалуйста, покажите мне, как.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню