Мне нужно преобразовать DateTime в массив, чтобы что-то JavaScript понимает как действительную дату, поэтому я могу составить график результатов. Я использую следующий код для построения массива из другого объекта:
let arr = obj.map(e => {
let { dateTime, averageJitterInMs } = e;
return [dateTime, +averageJitterInMs];
});
Пример исходной даты хранится как время UTC: 2018-10-14T17:19:53.2596293
Я пробовал:
let arr = obj.map(e => {
let { dateTime, averageJitterInMs } = e;
return [function() { return new Date(dateTime) }, +averageJitterInMs];
});
это дает мне нули на свидание...
Также попробовали:
let arr = obj.map(e => {
let { dateTime, averageJitterInMs } = e;
return [function() { new Date(dateTime) }, +averageJitterInMs];
});
это также дает мне нули...
Также попробовали:
let arr = obj.map(e => {
let { dateTime, averageJitterInMs } = e;
return [Date.parse(dateTime), +averageJitterInMs];
});
это дает мне эпоху, когда я верю, что не то, что мне нужно.
Очевидно, что мой синтаксис для использования анонимной функции, среди прочего, неверен. Просто ищите небольшую помощь по правильному способу сделать это, или если это можно сделать внутри этого блока let.
Кроме того, учитывая формат даты, мне нужно выполнить дополнительные действия для его интерпретации значения времени в строке? У меня есть возможность форматирования строки, как мне хотелось бы, из бэк-конца до того, как он попадет на JavaScript (то есть через мой код С#). Так что если это имеет смысл сделать это там, чтобы было проще JavaScript для его анализа, не проблема.
Вы можете просто использовать конструктор Date
:
return [new Date(dateTime), +averageJitterInMs]
[Я мог бы изменить формат], если имеет смысл это сделать, так что JavaScript легче анализировать
Я бы просто прошел миллисекунды с 1970 года, поскольку это единственное, что Date() надежно проверяет
return [new Date(dateTime), +averageJitterInMs]
? И я бы просто пропустил миллисекунды с 1970 года, так как это единственное, чтоDate()
надежно анализирует.new Date().toLocaleString('en-US')
иnew Date().toLocaleString('en-US')
строки даты, как у OP. Edge выпустил вывод, который включал часовой пояс, в то время как Firefox и Chrome только что создали короткую дату. Таким образом, в конце я разделил строку даты вручную, чтобы получить день, месяц и год, чтобы получить новый объект даты