Примеры решения задач

Задача

Задача. Выведите на экран текущие день, месяц и год в формате 'год-месяц-день'.

Решение:

var date = new Date();
alert(date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate());

Задача

Задача. Выведите на экран текущий месяц словом, по-русски.

Решение: создадим массив месяцев months, затем получим номер текущего месяца с помощью getMonth, и выведем месяц словом, обратившись к элементу массива months с ключом, равным номеру текущего месяца, вот так - months[month]:

var months = [
	'янв', 'фев', 'мар', 'апр', 'май', 'июн',
	'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'
];

var date = new Date();
var month = date.getMonth();
alert(months[month]);

Задачи для решения

Работа с new Date

Для решения задач данного блока вам понадобятся следующие методы объекта Date: getFullYear, getMonth, getDate, getHours, getMinutes, getSeconds.

Выведите на экран текущий день.

Решение:

var date = new Date();
alert(date.getDate());

Выведите на экран текущий месяц.

Решение:

var date = new Date();
alert(date.getMonth());

Выведите на экран текущий год.

Решение:

var date = new Date();
alert(date.getFullYear());

Выведите на экран текущую дату-время в формате '12:59:59 31.12.2014'. Для решения этой задачи напишите функцию, которая будет добавлять 0 перед днями и месяцами, которые состоят из одной цифры (из 1.9.2014 сделает 01.09.2014).

Решение:

var date = new Date();
function getZero(num){
	if (num > 0 && num < 10) { 
		return '0' + num;
	} else {
		return num;
	}
}

alert(date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() + ' ' + getZero(date.getDate()) + '.' + getZero(date.getMonth() + 1) + '.' + date.getFullYear());

Работа с getDay

Для решения задач данного блока вам понадобятся следующие методы: getDay.

Выведите на экран номер текущего дня недели.

Решение:

var date = new Date();
alert(date.getDay());

Выведите на экран текущий день недели (словом, по-русски). Создайте для этого вспомогательную функцию showDay, которая параметром принимает число, а возвращает день недели по-русски.

Решение:

var date = new Date();
var day = date.getDay();

function showDay(day) {
	var days = ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'];
	return days[day];
}

alert(showDay(day));

Узнайте, какой был 7-го января 2015 года.

Решение:

var date = new Date(2015, 0, 7); //месяц 0, так как их нумерация с нуля
var day = date.getDay();

function showDay(day) {
	var days = ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'];
	return days[day];
}

alert(showDay(day));

Работа с getTime

Для решения задач данного блока вам понадобятся следующие методы: getTime.

Выведите на экран количество минут с 1-го января 1970 года до настоящего момента времени.

Решение:

var date = new Date();
var minute = Math.floor(date.getTime() / (1000 * 60));
alert(minute);

Работа с Date.parse

Для решения задач данного блока вам понадобятся следующие методы: Date.parse.

Выведите на экран количество часов, прошедшее между 1 марта 1988 года и текущим моментом с помощью Date.parse.

Решение:

var time = Date.parse('1988-03-01T00:00:00'); //заданный момент в timestamp

var date = new Date();
var now = date.getTime(); //текущий момент в timestamp

var result = now - time; //найдем разницу в миллисекундах
result = result / (1000 * 60 * 60); //переведем миллисекунды в часы
alert(result);

Разность между датами

Выведите на экран количество секунд с начала дня до настоящего момента времени.

Решение:

var date = new Date();
var now = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
var result = Math.floor((date.getTime() - now.getTime()) / 1000);
alert(result);

Задачи

Выведите на экран количество секунд, которое осталось до конца дня.

Создайте инпут, в который пользователь вводит дату своего рождения в формате '2014-12-31' (с конкретным годом). По потери фокуса выведите под инпутом сколько дней осталось до его дня рождения. Воспользуйтесь методом Date.parse.