Обновленные часы в Javascript объекте даты возвращает отрицательное число - PullRequest
0 голосов
/ 06 июля 2018

Как я могу исправить эти цифры, я хочу только часы

var newDate = new Date();

var defaultHours = newDate.getHours();

var myHours = newDate.setHours(5);

console.log(defaultHours - myHours);
//resulte => -1530851451556

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

/* // =====================================================================
* *
* * * How I Can Fix This Numbers (1530834622138), I Want Just Hours Numbers
* *
*/ // =====================================================================


var newDate = new Date();

var defaultHours   = newDate.getHours(); 
var defaultMinutes = newDate.getMinutes();
var defaultSeconds = newDate.getSeconds();

// ========================= Start My Set Date =========================
newDate.setHours(12); //Sets hours to 12 but returns the  date as timestamp 1530834622138
var myHours = newDate.getHours();

newDate.setMinutes(12); //Sets Minutes to 12 but returns the  date as timestamp 1530834622138
var myMinutes = newDate.getMinutes();

newDate.setSeconds(0); //Sets seconds to 0 but returns the  date as timestamp 1530834622138
var mySeconds = newDate.getSeconds();
// ========================= End My Set Date =========================

// ============================== Result =============================
var resultHours   = defaultHours   - myHours;
var resultMinutes = defaultMinutes - myMinutes;
var resultSeconds = defaultSeconds - mySeconds;
// ============================== Result =============================

// ============================== If Statement =============================
defaultHours    = defaultHours   < 10 ? "0" + defaultHours : defaultHours;
defaultMinutes  = defaultMinutes < 10 ? "0" + defaultMinutes : defaultMinutes;
defaultSeconds  = defaultSeconds < 10 ? "0" + defaultSeconds : defaultSeconds;

myHours    = myHours   < 10 ? "0" + myHours : myHours;
myMinutes  = myMinutes < 10 ? "0" + myMinutes : myMinutes;
mySeconds  = mySeconds < 10 ? "0" + mySeconds : mySeconds;

resultHours    = resultHours   < 10 ? "0" + resultHours : resultHours;
resultMinutes  = resultMinutes < 10 ? "0" + resultMinutes : resultMinutes;
resultSeconds  = resultSeconds < 10 ? "0" + resultSeconds : resultSeconds;
// ============================== If Statement =============================

console.log("Real Time:       " + defaultHours + ":" + defaultMinutes + ":" + defaultSeconds);

console.log("My Time:         " + myHours + ":" + myMinutes + ":" + mySeconds);

console.log("Clalculate Time: " + resultHours + ":" + resultMinutes + ":" + resultSeconds);
0 голосов
/ 06 июля 2018

setHours устанавливает часы в переданное значение и возвращает обновленное время UNIX. Поэтому не устанавливайте значение myHours при настройке часов. Вместо этого получите его после установки.

Документы MDN для справки.

Как @musefan указывает в комментариях к вопросу, вы можете просто вычесть непосредственно вместо установки / получения накладных расходов.

var newDate = new Date("2018-07-06T10:50:22.138Z");
var defaultHours = newDate.getHours(); // 16
newDate.setHours(5); //Sets hours to 5 but returns the  date as timestamp 1530834622138
var myHours = newDate.getHours();
console.log(defaultHours - myHours);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...