Реагировать js Проблема с приложением iPhone (ошибки строк и дат) - PullRequest
0 голосов
/ 27 марта 2020

У меня есть отзывчивое приложение реагировать / реагировать, чтобы вычислить и рассчитать общее время пользователя при использовании приложения: при запуске нажимает «Старт», и я сохраняю время строки в БД «21:00:00», например, затем нажимаю « Fini sh "и вычислить сейчас Date и вызвать функцию ComputeTotal () для расчета времени.

Когда я использую приложение на P C (даже в режиме реагирования / iPhone), оно работает, но когда я развертываю (на движке приложения) и открываю его с моим iPhone, строковой датой являются NaN: NaN: NaN (те, когда я использую функцию для вычисления ()).

P C приложение:

PC version

iPhone версия:

iphone version

Функция, которую я использую для вычисления общего времени («Horaire total du jour»):

CalculerTotal = () => {

  var TotalHeure = 0;
  var TotalMinutes = 0; 
  var TotalSeconds = 0;

  for (var i = 0; i < this.state.events.length; i++) {
    if (this.state.events[i].arrivee !== "" &&this.state.events[i].depart !== "") {
      const d1 = new Date('1970-01-01 ' + this.state.events[i].depart);
      const d2 = new Date('1970-01-01 ' + this.state.events[i].arrivee);
      const diff = d1 - d2;
      const hours = Math.floor(diff/(1000*60*60));
      const mins = Math.floor((diff-(hours*1000*60*60)) / (1000*60));
      const secs = Math.floor((diff-(hours*1000*60*60)-(mins*1000*60)) / 1000);
      TotalHeure += hours; 
      TotalMinutes += mins;
      TotalSeconds += secs;
    }
}

if (TotalSeconds > 59) {
while (TotalSeconds >= 0) {
    if (TotalSeconds - 60 >= 0) {
      TotalSeconds = TotalSeconds - 60;
      TotalMinutes += 1;
    } else {
      break;
    }
  }
}

if (TotalMinutes > 59) {
while (TotalMinutes >= 0) {
if (TotalMinutes - 60 >= 0) {
TotalMinutes = TotalMinutes - 60;
TotalHeure += 1;
} else {
break;
}
}
}

var resHeures = (TotalHeure<10?'0':'') + TotalHeure;
var resMinutes = (TotalMinutes<10?'0':'') + TotalMinutes;
var resSecondes = (TotalSeconds<10?'0':'') + TotalSeconds;
return (`${resHeures}:${resMinutes}:${resSecondes}`)

}

В iPhone я получил NaN: NaN: NaN в качестве результата.

Что может быть причиной?

Спасибо

РЕДАКТИРОВАТЬ 1:

В Android телефонах работает нормально.

1 Ответ

0 голосов
/ 27 марта 2020

Исправлено.

Дубликат stackoverflow.com/q/13363673/1746830

...