javascript день недели по дате

Работа с датой и временем в JavaScript

javascript день недели по дате. Смотреть фото javascript день недели по дате. Смотреть картинку javascript день недели по дате. Картинка про javascript день недели по дате. Фото javascript день недели по дате

На этом уроке мы познакомимся с объектом Date языка JavaScript и научимся его использовать на практике.

Создание даты – 4 примера

Примеры создания даты в JavaScript.

1. Создание текущей даты и времени.

Получить текущую дату и время в JavaScript осуществляется посредством создания экземпляра объекта Date без указания параметров:

Если нужно получить только сегодняшнюю дату в формате строки, то можно воспользоваться методом toLocaleDateString :

Текущее время пользователя можно получить так:

Дату и время в формате строки можно получить следующим образом:

2. Создание даты путём указания объекту Date количества миллисекунд, прошедших с 1 января 1970 00:00:00 UTC.

3. Создание даты посредством указания её объекту Date в виде строки.

4. Создание даты посредством указания следующих параметров через запятую: год (4 цифры), месяц (отсчёт ведётся с 0), день (1..31), часы (0..23), минуты (0..59), секунды (0..59), миллисекунды (0..999). Причём обязательными из них являются только первые два параметра.

Пример создания даты с указанием только обязательных параметров:

Получение отдельных компонентов даты и времени

В JavaScript для получения отдельных компонентов даты и времени предназначены следующие методы:

Все эти методы возвращают отдельные компоненты даты и времени в соответствии с часовым поясом установленном на локальном устройстве пользователя.

Пример, в котором поприветствуем пользователя в зависимости от того какой сейчас у него интервал времени:

В этом примере вывод времени в нужном формате осуществлён с использованием тернарного оператора.

Пример, в котором переведём день недели из числового в строковое представление:

Установка отдельных компонентов даты и времени

В JavaScript установить отдельные компоненты даты и времени можно с помощью следующих методов объекта Date :

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

Кроме этого, в JavaScript указание некорректных компонентов даты и времени не приводит к ошибкам, они просто автоматически распределятся по остальным.

Этот приём можно использовать когда вам нужно получить дату, отличающуюся от данной на определённый промежуток времени.

Преобразование даты в строку и её форматирование

В JavaScript методы, выполняющие преобразование даты в строку, можно разделить на 2 группы.

Метод toString() возвращает полное представление даты, toDateString() – только дату, toTimeString() – только время, toUTCString() – полное представление даты, но в часовом поясе UTC+0.

Т.к. строковые представления, которые должны возвращать эти методы чётко не определены в стандарте, то они могут отличаться в разных браузерах.

Ко второй группе можно отнести методы с учётом часового пояса и языка локального компьютера: toLocaleString() – дату и время, toLocaleDateString() – только дату, toLocaleTimeString() – только время.

Источник

Работа с датами в JavaScript

Учебник JavaScript

Практика

Работа с DOM

Практика

Некоторые продвинутые вещи

Рекомендованное ES6

Некоторые видео могут забегать вперед, тк к этому месту учебника мы прошли еще не весь ES6. Просто пропускайте такие видео, посмотрите потом.

Регулярки

Разное

Работа с канвасом

Практика

Контекст

Drag-and-Drop

Практика по ООП

Ваша задача: посмотрите, попробуйте повторить.

Практика

Promise ES6

Библиотека jQuery

Тк. jQuery устаревает, объявляю эти уроки не обязательными и выношу в конец учебника (так по уровню уроки середины учебника, если что). В перспективе переедет в отдельный учебник по jq.

В этом уроке мы с вами разберем работу с датами в JavaScript.

Объект Date

Работа с датами в JavaScript ведется в основном через объект Date. Этот объект создается следующим образом:

Работа с getDay

Как работает этот метод, посмотрим на таком примере: пусть сегодня вторник, тогда следующий код выведет на экран число 2:

Давайте теперь выведем текущий день недели не числом, а словом (для краткости воскресенье будет ‘вс’, понедельник ‘пн’ и так далее).

Для этого я составлю массив дней недели days и начну его с воскресенья (так как это нулевой день):

Как с помощью этого массива вывести на экран, к примеру, ‘вт’? Нужно передать в квадратных скобках номер этого дня (вторник имеет номер 2):

Однако, мы не хотим передавать день недели вручную, а хотим, чтобы JavaScript сам определил текущий день и вывел его название. Для этого нужно совместить то, что возвращает метод getDay, и наш массив days:

Задаем определенный момент времени

Когда мы с вами создавали объект Date() (таким образом: new Date()) мы оставляли круглые скобки пустыми. В этом случае мы получали текущий момент времени.

Особенности такого формата: отсчет месяцев начинается с нуля, отсутствующие параметры, начиная с часов считаются равными нулю, а для года, месяцев и дней – единице.

Давайте узнаем день недели (словом) за определенную дату:

Работа с getTime

При работе с датой существует специальный формат timestamp, который в JavaScript показывает количество миллисекунд, прошедшее с 1-го января 1970 года по текущий (или заданный) момент времени.

Существует специальный метод getTime, с помощью которого можно получить время в формате timestamp.

Получим текущий момент времени в этом формате:

Получим заданный момент времени в этом формате:

Получим разницу в миллисекундах между текущим и заданным моментом времени:

Работа с Date.parse

Функция Date.parse принимает дату в формате ‘год-месяц-деньTчасы:минуты:секунды’ и возвращает соответствующей ей timestamp (количество миллисекунд, прошедших с полуночи 1 января 1970 года до заданного момента времени).

Давайте выведем количество миллисекунд, которые прошли с 1 января 1970 года до 25 мая 2015, 12:59:59:

Результат выполнения кода:

Разница между датами

Даты, представленные в виде объекта Date, можно вычитать друг из друга, результат их вычитания – разница в миллисекундах.

Давайте выведем количество миллисекунд, которые прошли с 25 мая 2015, 12:59:59 по настоящий момент времени:

Новые дополнительные видеоуроки

Ниже расположены уроки, которые раскрывают дополнительные нюансы. Смотреть обязательно!

Нахождение последнего дня месяца и определение високосного года на JavaScript https://youtu.be/s2LFyE3skhg

Проверка корректности даты на JavaScript https://youtu.be/_ymWJ9pTMcM

Определение знака зодиака по дате https://youtu.be/nZ2Pj_FGpnw

Обратный отсчет до даты на JavaScript https://youtu.be/ROehV_LVlzQ

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Источник

Дата и Время

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

Более новая информация по этой теме находится на странице https://learn.javascript.ru/date.

Для работы с датой и временем в JavaScript используются объекты Date.

Создание

Для создания нового объекта типа Date используется один из синтаксисов:

Создаёт объект Date с текущей датой и временем:

Если единственный аргумент – строка, используется вызов Date.parse (см. далее) для чтения даты из неё.

new Date(year, month, date, hours, minutes, seconds, ms)

Дату можно создать, используя компоненты в местной временной зоне. Для этого формата обязательны только первые два аргумента. Отсутствующие параметры, начиная с hours считаются равными нулю, а date – единице.

Год year должен быть из 4 цифр.

Отсчёт месяцев month начинается с нуля 0.

Дата задана с точностью до миллисекунд:

Получение компонентов даты

Для доступа к компонентам даты-времени объекта Date используются следующие методы:

getFullYear() Получить год (из 4 цифр) getMonth() Получить месяц, от 0 до 11. getDate() Получить число месяца, от 1 до 31. getHours(), getMinutes(), getSeconds(), getMilliseconds() Получить соответствующие компоненты.

Дополнительно можно получить день недели:

getDay() Получить номер дня в неделе. Неделя в JavaScript начинается с воскресенья, так что результат будет числом от 0(воскресенье) до 6(суббота).

Все методы, указанные выше, возвращают результат для местной временной зоны.

Если ваше локальное время сдвинуто относительно UTC, то следующий код покажет разные часы:

Кроме описанных выше, существуют два специальных метода без UTC-варианта:

Возвращает разницу между местным и UTC-временем, в минутах.

Установка компонентов даты

Следующие методы позволяют устанавливать компоненты даты и времени:

Автоисправление даты

Неправильные компоненты даты автоматически распределяются по остальным.

Например, нужно увеличить на 2 дня дату «28 февраля 2011». Может быть так, что это будет 2 марта, а может быть и 1 марта, если год високосный. Но нам обо всем этом думать не нужно. Просто прибавляем два дня. Остальное сделает Date :

Также это используют для получения даты, отдалённой от имеющейся на нужный промежуток времени. Например, получим дату на 70 секунд большую текущей:

Можно установить и нулевые, и даже отрицательные компоненты. Например:

Преобразование к числу, разность дат

Когда объект Date используется в числовом контексте, он преобразуется в количество миллисекунд:

Важный побочный эффект: даты можно вычитать, результат вычитания объектов Date – их временная разница, в миллисекундах.

Это используют для измерения времени:

Бенчмаркинг

Допустим, у нас есть несколько вариантов решения задачи, каждый описан функцией.

Как узнать, какой быстрее?

Для примера возьмём две функции, которые бегают по массиву:

Для правильного бенчмаркинга функция запускается много раз, чтобы сам тест занял существенное время. Это сведёт влияние помех к минимуму. Сложную функцию можно запускать 100 раз, простую – 1000 раз…

Померяем, какая из функций быстрее:

Теперь представим себе, что во время первого бенчмаркинга bench(walkIn) компьютер что-то делал параллельно важное (вдруг) и это занимало ресурсы, а во время второго – перестал. Реальная ситуация? Конечно реальна, особенно на современных ОС, где много процессов одновременно.

Гораздо более надёжные результаты можно получить, если весь пакет тестов прогнать много раз.

В современных браузерах (кроме IE9-) вызов performance.now() возвращает количество миллисекунд, прошедшее с начала загрузки страницы. Причём именно с самого начала, до того, как загрузился HTML-файл, если точнее – с момента выгрузки предыдущей страницы из памяти.

Так что это время включает в себя всё, включая начальное обращение к серверу.

Возвращаемое значение измеряется в миллисекундах, но дополнительно имеет точность 3 знака после запятой (до миллионных долей секунды!), поэтому можно использовать его и для более точного бенчмаркинга в том числе.

Для измерения с одновременным выводом результатов в консоли есть методы:

Параметр «метка» используется для идентификации таймера, чтобы можно было делать много замеров одновременно и даже вкладывать измерения друг в друга.

При запуске этого примера нужно открыть консоль, иначе вы ничего не увидите.

Современные интерпретаторы JavaScript делают массу оптимизаций, например:

Эти оптимизации могут влиять на результаты тестов, поэтому измерять скорость базовых операций JavaScript («проводить микробенчмаркинг») до того, как вы изучите внутренности JavaScript-интерпретаторов и поймёте, что они реально делают на таком коде, не рекомендуется.

Форматирование и вывод дат

Во всех браузерах, кроме IE10-, поддерживается новый стандарт Ecma 402, который добавляет специальные методы для форматирования дат.

Пример с почти всеми параметрами даты и русским, затем английским (США) форматированием:

Вы сможете подробно узнать о них в статье Intl: интернационализация в JavaScript, которая посвящена этому стандарту.

Методы вывода без локализации:

toISOString() Возвращает дату в формате ISO Детали формата будут далее. Поддерживается современными браузерами, не поддерживается IE8-.

Если хочется иметь большую гибкость и кросс-браузерность, то также можно воспользоваться специальной библиотекой, например Moment.JS или написать свою функцию форматирования.

Разбор строки, Date.parse

Все современные браузеры, включая IE9+, понимают даты в упрощённом формате ISO 8601 Extended.

Источник

Методы объекта Date

Следующие методы можно использовать для получения информации из объекта даты:

МетодОписание
getFullYear()Получить год в формате четырех цифр (гггг)
getMonth()Получить номер месяца (0-11)
getDate()Получить число месяца (1-31)
getHours()Получить час (0-23)
getMinutes()Получить минуты (0-59)
getSeconds()Получить секунды (0-59)
getMilliseconds()Получить миллисекунды (0-999)
getTime()Получить время (количество миллисекунд, прошедших с 1 января 1970)
getDay()Получить номер дня недели (0-6)

Метод getTime()

Метод getTime() возвращает количество миллисекунд, прошедших с 1 января 1970:

Метод getFullYear()

Метод getFullYear() возвращает год в формате четырех цифр:

Метод getMonth()

Метод getMonth() возвращает номер месяца (0-11):

В JavaScript первый месяц (январь) имеет номер 0, таким образом у последнего, декабря, будет номер 11.

Чтобы возвращалось название месяца, можно использовать массив с именами месяцев и метод getMonth():

Метод getDate()

Метод getDate() возвращает число месяца (1-31):

Метод getHours()

Метод getHours() возвращает час (0-23):

Метод getMinutes()

Метод getMinutes() возвращает минуты (0-59):

Метод getSeconds()

Метод getSeconds() возвращает секунды (0-59):

Метод getMilliseconds()

Метод getMilliseconds() возвращает миллисекунды (0-999):

Метод getDay()

Метод getDay() возвращает номер дня недели (0-6):

В JavaScript первым днем недели (0) считается «воскресенье», даже если в стране, где находится пользователь, первым днем недели считается «понедельник».

Чтобы возвращалось название дня недели, можно использовать массив с днями недели и метод getDay():

Методы даты по UTC

Кроме обычных методов есть также аналогичные методы, но возвращающие данные по UTC (Universal Time Zone):

МетодОписание
getUTCDate()То же, что getDate()
getUTCDay()То же, что getDay()
getUTCFullYear()То же, что getFullYear()
getUTCHours()То же, что getHours()
getUTCMilliseconds()То же, что getMilliseconds()
getUTCMinutes()То же, что getMinutes()
getUTCMonth()То же, что getMonth()
getUTCSeconds()То же, что getSeconds()

Методы для изменения данных объекта Date

Помимо получения данных в объекте Date также есть методы, которые позволяют изменить значения даты и времени (год, месяц, день, час, минуты, секунды, миллисекунды).

МетодОписание
setDate()Устанавливает день (1-31)
setFullYear()Устанавливает год (также можно установить месяц и день)
setHours()Устанавливает час (0-23)
setMilliseconds()Устанавливает миллисекунды (0-999)
setMinutes()Устанавливает минуты (0-59)
setMonth()Устанавливает месяц (0-11)
setSeconds()Устанавливает секунды (0-59)
setTime()Устанавливает время (количество миллисекунд, прошедших с 1 января 1970)

Метод setFullYear()

Метод setFullYear() устанавливает в объекте даты год.

В следующем примере устанавливается 2020 год:

При желании при помощи метода setFullYear() также можно установить месяц и день:

Метод setMonth()

Метод setMonth() устанавливает в объекте даты месяц (0-11):

Метод setDate()

Метод setDate() устанавливает в объекте даты день (1-31):

Кроме этого, метод setDate() может использоваться для добавления дней к дате:

Если при добавлении дней происходит сдвиг месяцев или года, то эти изменения в объекте Date происходят автоматически.

Метод setHours()

Метод setHours() устанавливает в объекте даты час (0-23):

Метод setMinutes()

Метод setMinutes() устанавливает в объекте даты минуты (0-59):

Метод setSeconds()

Метод setSeconds() устанавливает в объекте даты секунды (0-59):

Сравнение дат

В JavaScript даты легко сравниваются.

В следующем примере текущая дата сравнивается с 14 января 2100 года:

Внимание! JavaScript считает месяцы от 0 до 11. Январь — 0. Декабрь — 11.

Источник

Дата и время

Встречайте новый встроенный объект: Date. Он содержит дату и время, а также предоставляет методы управления ими.

Например, его можно использовать для хранения времени создания/изменения, для измерения времени или просто для вывода текущей даты.

Создание

Для создания нового объекта Date нужно вызвать конструктор new Date() с одним из следующих аргументов:

Без аргументов – создать объект Date с текущими датой и временем:

Создать объект Date с временем, равным количеству миллисекунд (тысячная доля секунды), прошедших с 1 января 1970 года UTC+0.

Целое число, представляющее собой количество миллисекунд, прошедших с начала 1970 года, называется таймстамп (англ. timestamp).

Это – легковесное численное представление даты. Из таймстампа всегда можно получить дату с помощью new Date(timestamp) и преобразовать существующий объект Date в таймстамп, используя метод date.getTime() (см. ниже).

Датам до 1 января 1970 будут соответствовать отрицательные таймстампы, например:

Создать объект Date с заданными компонентами в местном часовом поясе. Обязательны только первые два аргумента.

Максимальная точность – 1 мс (до 1/1000 секунды):

Получение компонентов даты

Существуют методы получения года, месяца и т.д. из объекта Date :

getFullYear() Получить год (4 цифры) getMonth() Получить месяц, от 0 до 11. getDate() Получить день месяца, от 1 до 31, что несколько противоречит названию метода. getHours(), getMinutes(), getSeconds(), getMilliseconds() Получить, соответственно, часы, минуты, секунды или миллисекунды.

Кроме того, можно получить определённый день недели:

getDay() Вернуть день недели от 0 (воскресенье) до 6 (суббота). Несмотря на то, что в ряде стран за первый день недели принят понедельник, в JavaScript начало недели приходится на воскресенье.

Все вышеперечисленные методы возвращают значения в соответствии с местным часовым поясом.

Если ваш местный часовой пояс смещён относительно UTC, то следующий код покажет разные часы:

Помимо вышеприведённых методов, существуют два особых метода без UTC-варианта:

Для заданной даты возвращает таймстамп – количество миллисекунд, прошедших с 1 января 1970 года UTC+0.

Возвращает разницу в минутах между UTC и местным часовым поясом:

Установка компонентов даты

Следующие методы позволяют установить компоненты даты и времени:

Автоисправление даты

Неправильные компоненты даты автоматически распределяются по остальным.

Предположим, нам требуется увеличить дату «28 февраля 2016» на два дня. В зависимости от того, високосный это год или нет, результатом будет «2 марта» или «1 марта». Нам об этом думать не нужно. Просто прибавляем два дня. Объект Date позаботится об остальном:

Эту возможность часто используют, чтобы получить дату по прошествии заданного отрезка времени. Например, получим дату «спустя 70 секунд с текущего момента»:

Также можно установить нулевые или даже отрицательные значения. Например:

Преобразование к числу, разность дат

Если объект Date преобразовать в число, то получим таймстамп по аналогии с date.getTime() :

Важный побочный эффект: даты можно вычитать, в результате получаем разность в миллисекундах.

Этот приём можно использовать для измерения времени:

Date.now()

Если нужно просто измерить время, объект Date нам не нужен.

Данный метод используется из соображений удобства или когда важно быстродействие, например, при разработке игр на JavaScript или других специализированных приложений.

Вероятно, предыдущий пример лучше переписать так:

Бенчмаркинг

Будьте внимательны, если хотите точно протестировать производительность функции, которая зависит от процессора.

Например, сравним две функции, вычисляющие разницу между двумя датами: какая сработает быстрее?

Подобные вычисления, замеряющие производительность, также называют «бенчмарками» (benchmark).

Обе функции делают буквально одно и то же, только одна использует явный метод date.getTime() для получения даты в миллисекундах, а другая полагается на преобразование даты в число. Результат их работы всегда один и тот же.

Но какая функция быстрее?

Для начала можно запустить их много раз подряд и засечь разницу. В нашем случае функции очень простые, так что потребуется хотя бы 100000 повторений.

Вот это да! Метод getTime() работает ощутимо быстрее! Всё потому, что не производится преобразование типов, и интерпретаторам такое намного легче оптимизировать.

Замечательно, это уже что-то. Но до хорошего бенчмарка нам ещё далеко.

Представьте, что при выполнении bench(diffSubtract) процессор параллельно делал что-то ещё, также потребляющее ресурсы. А к началу выполнения bench(diffGetTime) он это уже завершил.

Достаточно реалистичный сценарий в современных многопроцессорных операционных системах.

В итоге у первого бенчмарка окажется меньше ресурсов процессора, чем у второго. Это может исказить результаты.

Для получения наиболее достоверных результатов тестирования производительности весь набор бенчмарков нужно запускать по нескольку раз.

Современные интерпретаторы JavaScript начинают применять продвинутые оптимизации только к «горячему коду», выполняющемуся несколько раз (незачем оптимизировать то, что редко выполняется). Так что в примере выше первые запуски не оптимизированы должным образом. Нелишним будет добавить предварительный запуск для «разогрева»:

Современные интерпретаторы JavaScript выполняют множество оптимизаций. Они могут повлиять на результаты «искусственных тестов» по сравнению с «нормальным использованием», особенно если мы тестируем что-то очень маленькое, например, работу оператора или встроенной функции. Поэтому если хотите серьёзно понять производительность, пожалуйста, изучите, как работают интерпретаторы JavaScript. И тогда вам, вероятно, уже не понадобятся микробенчмарки.

Отличный набор статей о V8 можно найти на http://mrale.ph.

Разбор строки с датой

Метод Date.parse(str) считывает дату из строки.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *