Как получить время между датой PHP и текущей датой JS - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу вычислить прошедшее время между двумя датами.Дата начала рассчитывается с использованием PHP и сохраняется в mySQL как поле даты и времени.Затем на моей веб-странице я хочу использовать JS, чтобы показать время, прошедшее между датой и временем в моей базе данных.

Когда я получаю дату в секундах в JS, она не включает британское летнее время.Но версия базы данных делает.Как получить или рассчитать количество секунд с начала эпохи, включая летнее время?

var start = document.getElementById('unix_start').value; 
display_elapsed = document.getElementById('elapsed');

//var now = Math.floor(Date.now() / 1000); // returns UTC seconds

var nowm = new Date();
var now = Math.floor(nowm.getTime() / 1000); // also UTC seconds

var elapsed = now - start;
var h = Math.floor(elapsed / 3600);
var m = Math.floor((elapsed - (h*3600)) / 60);
// plus some formatting logic...for leading zeros

display_elapsed.value =  h+':'+m;

Я хочу, чтобы на веб-странице отображалось, например, 1,00 часов.Вместо этого он всегда начинается с отрицательного значения -1,00 и становится положительным только через час.

1 Ответ

0 голосов
/ 27 сентября 2019

ОК. Теперь я обнаружил функцию getTimezoneOffset ().Поэтому я использовал следующее:

var start = document.getElementById('unix_start').value; 
var display_elapsed = document.getElementById('elapsed');
var nowm = new Date();
var offset=nowm.getTimezoneOffset() * 60; // convert to seconds
var now = Math.floor(nowm.getTime() / 1000) - offset;
var start = document.getElementById('unix_start').value;
var elapsed = now - start;
var h = Math.floor(elapsed / 3600);
var m = Math.floor((elapsed - (h*3600)) / 60);
// plus some formatting logic...for leading zeros
display_elapsed.value =  h+':'+m;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...