Неверный формат даты с пользовательским форматом для Firefox и .diff не работает - PullRequest
0 голосов
/ 18 декабря 2018

Во время тестирования моей программы я заметил, что хотя дата хорошо работает в Chrome и дает правильную дату, для Firefox я получаю недопустимую дату при попытке запустить следующий код:

var dateToConvert = $filter('date')(resourcehelper.getLocalDate(jm.logging.subordinatedElements[i].logTime), 'yyyy-MM-dd HH:mm:ss:sss');
var dateWithDifference = moment(dateToConvert).subtract(hourDifference, 'hours').format('YYYY-MM-DD HH:mm:ss:SSS');

Где «jm.logging.subordinatedElements [i] .logTime» - это дата, равная формату Unix, подобному следующему: 1545092400027

Переменная «hourDifference» рассчитывается следующим образом:

var differenceOfHours = moment.utc(moment(localDate, 'YYYY-MM-DD HH:mm:ss:SSS').diff(moment(serverDate, 'YYYY-MM-DD HH:mm:ss:SSS'))).format("HH");
return parseInt(differenceOfHours);

Где localDate и serverDate имеют следующий формат: «2018-12-18 02: 20: 00: 043».HourDifference всегда дает мне «00» и 0 после parseInt, независимо от разницы часов между двумя датами в Firefox.

Хотя все это работает на Chrome без проблем, как я уже сказал, они не делаютв Firefox.У меня вопрос: как сделать так, чтобы моя дата была узнаваемой без изменения формата «2018-12-18 02: 20: 00: 043»?(поскольку я должен отображать дату в этом формате для конечного пользователя).

1 Ответ

0 голосов
/ 18 декабря 2018

В конце концов я исправил проблему, изменив формат даты на ISO-совместимый.Причина, по которой даты не работали в Firefox, заключалась в более ограниченном анализе дат, который Firefox сравнил с Chrome, поэтому для Firefox и momentJS должен использоваться формат, совместимый с ISO или RFC2822.

Я использовалдля моих дат это 2013-02-08 24: 00: 00.000

...