Далее на странице...
Продолжаем работать с объектом Date. Здесь мы познакомимся с методом getTime.
Метод getTime возвращает количество МиллиСекунд, прошедших с полночи 1-го января 1970 года до настоящего времени (если иная дата не указана в параметрах объекта Date).
Этот стандарт (точка отсчёта) был когда-то принят программистами. Для чего? Об этом и не только Вы узнаете из этой заметки.
1-го января 1970 года - Возвращаем количество миллисекунд
Сначала, при помощи метода getTime объекта Date мы узнаем, сколько миллисекунд прошло с 1-го января 1970 года до настоящего времени.
<script type="text/javascript">
var now = new Date();
var milliSeconds = now.getTime();
document.write(milliSeconds);
</script>
В результате, осенью 2017 года, я получил число из тринадцати цифр 1506710842947. Идем далее.
Вы же в результате исполнения кода увидите другое число. Так как сегодня уже иная дата.
1-го января 1970 года - Секунды и минуты. Часы и Дни
Для тех, кто не знает, в одной секунде содержится 1000 миллисекунд.
Ну а то, что в одной минуте содержится 60 секунд, скорее всего, известно каждому.
Исходя из этого при помощи метода getTime, узнаем: сколько секунд и минут прошло с 1-го января 1970 года до настоящего времени.
<script type="text/javascript">
var now = new Date();
var seconds = now.getTime() / 1000;
var minutes = now.getTime() / (1000 * 60);
document.write(seconds + " - количество Секунд <br>");
document.write(minutes + " - количество Минут");
</script>
Количество прошедших с указанной даты часов и дней также вычислить не сложно. Смотрите пример ниже.
<script type="text/javascript">
var now = new Date();
var hours = now.getTime() / (1000 * 60 * 60);
var days = now.getTime() / (1000 * 60 * 60 * 24);
document.write(hours + " - количество Часов <br>");
document.write(Math.round(days) + " - количество Дней");
</script>
И здесь же при помощи метода round объекта Math количество дней было округлено до целого значения.
Метод getTime - Практический пример
Теперь, когда мы выяснили, сколько времени (в различных единицах измерения) проходит с 1-го января 1970 года до настоящего момента, можно рассмотреть практический пример применения метода getTime.
Например, как выяснить, сколько дней осталось до 1-го января 2030 года.
-
Сначала узнаем, сколько дней прошло с 1-го января 1970 года до настоящего времени.
-
Потом посчитаем количество дней с 1-го января 1970 года до 1-го января 2030 года.
-
Третьим шагом вычислим разницу и получим число дней от сегодняшнего до первого дня 2030 года.
-
Итак, как Вы помните, объект Date() по умолчанию содержит текущую дату и не содержит параметров (т.к. при этом дату явно не указывают).
Но чтобы узнать число дней до 1-го января 2030 года, необходимо именно эту дату указать в параметрах объекта следующим образом:
var now = new Date(); /* Объект Date по умолчанию */
var now = new Date(2030,0,1,0,0); /* Объект Date содержит Дату */
2030 - год
0 - месяц (январь)
1 - число месяца
0 - час
0 - минута
и т.д. можно указать секунду и даже миллисекунду
Реализуем поставленную задачу в javascript-коде.
<script type="text/javascript">
var now = new Date(); /* Объект Date ориентируется на текущую Дату */
var from_1970 = now.getTime() / (1000 * 60 * 60 * 24); /* Узнаем кол-во дней */
document.write(Math.round(from_1970) + " - число дней от 1970 года до Настоящего момента <br>");
var newYear = new Date(2030,0,1); /* Объект Date ориентируется на указанную Дату */
var from_to = newYear.getTime() / (1000 * 60 * 60 * 24); /* Узнаем кол-во дней */
document.write(Math.round(from_to) + " - число дней от 1970 года до 1-го января 2030 года <br>");
document.write(Math.round(from_to) - Math.round(from_1970) + " - дней осталось до 1-го января 2030 года <br>");
var dayWeek = newYear.getDay(); /* Узнаем номер дня недели для 1-го января 2030 г. */
var days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница","Суббота"]; /* Массив с днями недели */
document.write("Это будет - " + days[dayWeek]);
</script>
В этом примере помимо выполнения поставленной задачи, мы узнали и вывели на экран день недели (при помощи метода getDay и массива дней недели), на который приходится 1-го января 2030 г.
Объект Date - для НЕ сегодняшней даты - Параметр в Миллисекундах
В очередной раз напомним, что по умолчанию объект Date() создается без параметров, то есть для текущей даты.
В предыдущем пункте он создавался для даты 1-го января 2030 года. Поэтому был указан с параметрами в виде: Date(2030,0,1).
Здесь мы также говорили о том, как создать объект Date для НЕ сегодняшней даты.
Но есть и другой способ создания объекта Date для НЕ сегодняшней даты. Для этого в качестве его параметра нужно указать число Миллисекунд до нужной даты.
Отсчет указанного времени будет вестись от полночи 1-го января 1970 года.
<script type="text/javascript">
var milliS = new Date(1000 * 60 * 60 * 24); /* Параметр объекта - Число миллисекунд в сутки */
document.write(milliS);
</script>
Пример №5 - Объект Date для НЕ сегодняшней даты в Миллисекундах
Fri Jan 02 1970 03:00:00 GMT+0300
Итак, в этом примере был создан объект Date для даты 2-го января 1970 года. Для этого в его параметрах было указано число миллисекунд в сутках. Отсчет велся от 1-го января 1970 года. При этом была учтена разница в часовых поясах GMT+0300.