Для получения компонент местных даты и времени объекта Date используются функции setFullYear(), setMonth(), setDate(), setHours(), setMinutes(), setSeconds() и setMilliSeconds().
Функция
setFullYear(год, номер-месяца, число-месяца)
устанавливает для объекта Date в параметре год числовое значение года, в параметре номер-месяца – значение номера месяца (от 0 – январь до 11 – декабрь) и в параметре число-месяца – значение числа в месяце (от 1 до 31). Параметры номер-месяца и число-месяца являются необязательными. Если они не заданы, используются текущие значения номера месяца и дня месяца в объекте Date. Если заданы неверные значения номера месяца и числа месяца, функция пытается привести эти величины к допустимым значениям. Так, если для номера месяца задано значение 12, то предполагается, что эта цифра соответствует январю следующего года, т. е. значение номера месяца станет равно 0, а заданное значение года увеличится на 1. Аналогично, если для июня (значение номера для этого месяца равно 5) задано число 31, а количество дней в июне равно 30, то номер месяца увеличится на 1 (июль), а число станет равным 1.
|
|
Функция
setMonth(номер-месяца, число-месяца)
устанавливает для объекта Date в параметре номер-месяца – значение номера месяца (от 0 – январь до 11 – декабрь) и в параметре – значение числа в месяце (от 1 до 31). Параметр число-месяца является необязательными. Если он не заданы, используются текущее значение дня месяца в объекте Date. Если заданы неверные значения номера месяца и числа месяца, функция пытается привести эти величины к допустимым значениям, аналогично алгоритму, приведенному для функции setFullYear().
Функция
setHours(часы, минуты, секунды, миллисекунды)
устанавливает для объекта Date в параметре часы числовое значение часа (от 0 до 23), в параметре минуты – числовое значение минуты (от 0 до 60), в параметре секунды – числовое значение секунды (от 0 до 60) и в параметре миллисекунды – числовое значение количества миллисекунд (от 0 до 999). Параметры минуты, секунды и миллисекунды являются необязательными. Если они не заданы, используются текущие значения минут, секунд и миллисекунд в объекте Date. Если для какого-либо параметра заданы неверные значения (вне диапазона допустимых величин), для изменения значений используется тот же алгоритм, что и для функции setFullYear(). Так, если для секунд задано значение 65, то параметр минуты примет значение, на 1 больше заданного, а количество секунд станет равным 5.
Функция
setMinutes(минуты, секунды, миллисекунды)
устанавливает для объекта Date в параметре минуты числовое значение минуты (от 0 до 60), в параметре секунды – числовое значение секунды (от 0 до 60) и в параметре миллисекунды – числовое значение количества миллисекунд (от 0 до 999). Параметры секунды и миллисекунды являются необязательными. Если они не заданы, используются текущие значения секунд и миллисекунд в объекте Date. Если для какого-либо параметра заданы неверные значения (вне диапазона допустимых величин), для изменения значений используется тот же алгоритм, что и для функции setFullYear().
|
|
Функция
setSeconds(секунды, миллисекунды)
устанавливает для объекта Date в параметре секунды числовое значение секунды (от 0 до 60) и в параметре миллисекунды – числовое значение количества миллисекунд (от 0 до 999). Параметр миллисекунды является необязательным. Если он не задан, используется текущее значение миллисекунд в объекте Date. Если для какого-либо параметра заданы неверные значения (вне диапазона допустимых величин), для изменения значений используется тот же алгоритм, что и для функции setFullYear().
Функция
setMilliseconds(миллисекунды)
устанавливает для объекта Date в параметре миллисекунды – числовое значение количества миллисекунд (от 0 до 999). Параметр миллисекунды является необязательным. Если для миллисекунд задано неверное значение (вне диапазона допустимых величин), для изменения значений используется тот же алгоритм, что и для функции setFullYear().
Функция
setTime(внутреннее-время)
устанавливает для объекта Date значение как внутреннее время в миллисекундах с 1 января 1970 года.
Функции setUTCFullYear(), setUTCMonth(), setUTCDate(), setUTCHours(), setUTCMinutes(), setUTCSeconds() и setUTCMilliSeconds() действуют аналогично приведенным выше функциям, но для установки компонентов времени UTC.
Пример 4.4.55. Использование функций установки компонент даты и времени объекта Date:
// Массив наименований месяцев
monthName = ["января", "февраля", "марта", "апреля",
"мая", "июня", "июля", "августа", "сентября",
"октября", "ноября", "декабря"];
// Определение текущей даты
currentDate = new Date();
// Определение начального значения назначенной даты
targetDate = new Date();
// Ввод значения месяца для назначенной даты
targetMonthString =
prompt("Введите номер месяца (1-12):", "");
// Перевод значения номера месяца в число
targetMonth = parseInt(targetMonthString);
// Ввод значения дня в месяце
// для назначенной даты
targetDayString =
prompt("Введите день в месяце (1-31):", "1");
// Перевод значения дня месяца в число
targetDay = parseInt(targetDayString);
// Установка значения месяца и дня в месяце
// для назначенной даты
targetDate.setMonth(targetMonth-1,targetDay);
// Преобразование текущей даты во внутреннее время
currentInnerTime = currentDate.getTime();
// Преобразование назначенной даты во внутреннее время
targetInnerTime = targetDate.getTime();
// Определение количества дней между
// текущей датой и назначенной датой
dayNumber =
Math.floor((currentInnerTime - targetInnerTime)/86400000);
// Если назначенная дата еще не наступила
if(dayNumber < 0)
// Вывод сообщения
alert("До " + targetDay + " " +
monthName[targetMonth-1] +
" осталось дней: " + Math.abs(dayNumber));
else
// Вывод сообщения
alert("С " + targetDay + " " +
monthName[targetMonth-1] +
" прошло дней: " + dayNumber);
В этом фрагменте сценария определяется (без контроля вводимых данных), сколько прошло дней или сколько осталось дней с текущей даты до назначенной даты в этом же году.
Пример вывода этого фрагмента приведен ниже: