У меня есть отзывчивое приложение реагировать / реагировать, чтобы вычислить и рассчитать общее время пользователя при использовании приложения: при запуске нажимает «Старт», и я сохраняю время строки в БД «21:00:00», например, затем нажимаю « Fini sh "и вычислить сейчас Date и вызвать функцию ComputeTotal () для расчета времени.
Когда я использую приложение на P C (даже в режиме реагирования / iPhone), оно работает, но когда я развертываю (на движке приложения) и открываю его с моим iPhone, строковой датой являются NaN: NaN: NaN (те, когда я использую функцию для вычисления ()).
P C приложение:
iPhone версия:
Функция, которую я использую для вычисления общего времени («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 телефонах работает нормально.