var hello = new Date(2010, 11, 17, 0, 0, 0, 0);
console.log(hello.toUTCString());
и
var hello2 = Date.UTC(2010, 11, 17, 0, 0, 0, 0);
console.log(hello2);
На самом деле это две разные функции, которые распечатывают разные вещи.
toUTCString()
- Преобразует объект Date в строку в соответствии с универсальным временем
, где
Date.UTC()
- возвращает количество миллисекунд в строке даты сполночь 1 января 1970 года по всемирному времени.
Если вы пытаетесь вычислить миллисекунды в строке даты, начиная с полуночи 1-1-1970, вам придется использовать Date.UTC();
.Однако, если вы пытаетесь получить свойства в различных формах новой даты (2010, 11, 17, 0, 0, 0, 0);тогда вам придется использовать его собственные методы конструктора (toUTCString()
или getUTCMilliseconds()
и т. д.).
UTC является членом самого конструктора Date, а не членом экземпляров Date.Итак, чтобы вызвать UTC, вы должны использовать Date.UTC();
Date()
, преобразующее текущее время в строку, в соответствии с универсальным временем, а Date.UTC()
извлекает и использует значение, которое рассчитывается в миллисекундах с 1 января 1970 года 00:00:00 Всемирное время (UTC).Итак, они похожи на «статические» функции.
Более того, в JavaScript, когда вы используете ключевое слово 'new'
для создания нового объекта (создания экземпляра), значение конструктора this
указывает на новый объект.Таким образом, hello может иметь свою собственную дату, в отличие от Date()
или Date.UTC()
, this
будет указывать на другую область видимости (глобальную, я думаю), которая будет выполнять вычисления на основе 1-1-1970 00: 00: 00 или вернуть время, когда вызывается функция Date.Объект hello, с другой стороны, будет иметь базовую дату, которая была создана с new Date(2010, 11, 17, 0, 0, 0, 0)
с его набором созданных методов (toUTCString();
и т. Д.).Новая дата с this
указывает на новый объект, используя переданные свойства в качестве базового значения «дата».
С учетом всего сказанного, hello.UTC()
обращается к функции, которая не является членом ее конструктора и, следовательно, не работает.Это часть ООП в JavaScript.Это все на моей голове и, возможно, немного нечетко, если вы читаете это.Пожалуйста, исправьте меня, если у меня есть ошибки.