новая дата() возвращает другое время

#javascript #date #datetime

Вопрос:

В настоящее время я пытаюсь изучить JavaScript, и сегодня я изучал функцию «новая дата ()». Однако во время процесса я заметил, что если я назначу дату переменной, декомпилирую ее на части и попытаюсь скомпилировать ее снова, точное время будет другим. Разве «Дата получения» не должна быть равна «текущему времени»? Я был бы признателен, если бы кто-нибудь мог указать, допустил ли я где-то ошибку или если нет, то в чем именно заключается разница.

PS: Каждый раз, когда я запускаю фрагмент, разница в минутах между ними кажется непоследовательной.

 var getDate= new Date();

var currentYear = getDate.getFullYear();
var currentMonth = getDate.getMonth();
var currentDay = getDate.getDate();
var currentHour = getDate.getHours();
var currentMinutes = getDate.getMinutes();
var currentMiliseconds = getDate.getMilliseconds();

var currentTime =  new Date(currentYear, currentMonth, currentDay, currentHour, currentMinutes, currentMiliseconds);  

console.log(getDate.toString());
console.log(currentTime.toString()); 

Ответ №1:

Вы ошибочно пропустили миллисекунды перед секундами, поэтому new Date() обрабатывали миллисекунды как секунды.

Миллисекунды колеблются от 0 до 999, поэтому в большинстве случаев время, которое вы создали, на несколько минут позже фактического времени:

 var getDate= new Date();

var currentYear = getDate.getFullYear();
var currentMonth = getDate.getMonth();
var currentDay = getDate.getDate();
var currentHour = getDate.getHours();
var currentMinutes = getDate.getMinutes();
// you've missed
var currentSeconds = getDate.getSeconds();
var currentMilliseconds = getDate.getMilliseconds();

var currentTime =  new Date(currentYear, currentMonth, currentDay, currentHour, currentMinutes, currentSeconds, currentMilliseconds);  

console.log(getDate.toString());
console.log(currentTime.toString()); 

Комментарии:

1. Я думаю, это знак того, что мне пора ложиться спать. Большое вам спасибо за то, что указали на это.