javascript date прибавить день

Прибавить к дате день / месяц / год | JavaScript

Сложение дат

Чтобы прибавить к дате нужное количество дней

Чтобы прибавить к дате нужное количество месяцев

Чтобы прибавить к дате нужное количество лет

Сложение лет, месяцев, дней

Август

Пн

Вт

Ср

Чт

Пт

Сб

Вс

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

2627

28

29

30

31

Сентябрь

Пн

Вт

Ср

Чт

Пт

Сб

Вс

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

До 1 октября 33 дня или 1 месяц 3 дня (в сентябре 30 дней). Но скрипт считает что спустя 1 месяц 2 дня также наступит 1 октября.

Поскольку вначале прибавляется месяц, а затем число, так делать нежелательно:

+ лет + месяцев + дней =

Аналогично с

часы

getHours()

setHours()

минуты

getMinutes()

setMinutes()

секунды

getSeconds()

setSeconds()

миллисекунды

getMilliseconds()

setMilliseconds()

Аналогично с вычитанием

.toJSON и 00:00:00

Источник

Дата и Время

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

Более новая информация по этой теме находится на странице 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.

Источник

Добавить дни в JavaScript Date

Это обеспечивает автоматическое увеличение месяца при необходимости. Например:

Проблема с использованием setDate напрямую заключается в том, что это мутатор, и такого рода вещи лучше избегать. ECMA счел целесообразным рассматривать Date как изменчивый класс, а не неизменную структуру.

Правильный ответ :

Неверный ответ :

Этот ответ иногда дает правильный результат, но очень часто возвращает неправильный год и месяц. Единственный раз, когда этот ответ работает, когда дата, к которой вы добавляете дни, совпадает с текущим годом и месяцем.

Доказательство / Пример

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

Мое простое решение:

Это решение не имеет проблемы с переходом на летнее время. Кроме того, можно добавить / суб любое смещение для лет, месяцев, дней и т. Д.

Эти ответы кажутся мне запутанными, я предпочитаю:

Использование миллисекундного конструктора дает желаемый объект даты.

Использование setDate () для добавления даты не решит вашу проблему, попробуйте добавить несколько дней в февраль месяц, если вы попытаетесь добавить к нему новые дни, это не приведет к тому, что вы ожидали.

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

Если вы хотите просто добавить n дней к вашей дате, лучше всего пойти:

или длинная версия

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

Я создал эти расширения вчера вечером:
вы можете передавать как положительные, так и отрицательные значения;

Не используя вторую переменную, вы можете заменить 7 на следующие x дней:

вычесть 30 дней использования (24 часа = 86400000 мс)

Самое простое решение.

Спасибо Джейсону за ваш ответ, который работает, как и ожидалось, вот сочетание вашего кода и удобного формата AnthonyWJones:

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

И много других хороших вещей там!

Редактировать: ссылка на jQuery удалена благодаря комментарию aikeru

Старый я знаю, но иногда мне нравится это:

У меня были проблемы с переходом на летнее время с предложенным решением.

Используя getUTCDate / setUTCDate вместо этого, я решил свою проблему.

Вы можете использовать JavaScript, JQuery не требуется:

Общий прототип без переменных, он применяется к существующему значению Date:

Документы mozilla для setDate () не указывают, что он будет обрабатывать сценарии на конец месяца. См. Https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date.

Вот почему я использую setTime (), когда мне нужно добавить дни.

Так просто, как это:

Полагаю, я также дам ответ:
лично я хотел бы попытаться избежать необоснованного объявления переменных, вызовов методов и вызовов конструктора, поскольку все они дороги в производительности. (в пределах разумного, конечно)
Я собирался оставить это как просто комментарий под Ответом, данным @AnthonyWJones, но думал об этом лучше.

Выше будет уважать DST. Это означает, что если вы добавите количество дней, пересекающих DST, отображаемое время (часы) изменится, чтобы отразить это.
Пример:
2 ноября 2014 г. 02:00 был конец летнего времени.

Источник

Добавить дни в JavaScript Date

30 ответов

Это обеспечивает автоматическое увеличение месяца при необходимости. Например:

Проблема с использованием setDate заключается в том, что он является мутатором, и такого рода вещи лучше избегать. ECMA счел целесообразным трактовать Date как изменяемый класс, а не неизменную структуру.

Этот ответ иногда дает правильный результат, но очень часто возвращает неправильный год и месяц. Единственный раз, когда этот ответ работает, это когда дата, к которой вы добавляете дни, совпадает с текущим годом и месяцем.

Доказательство /Пример

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

Мое простое решение:

У этого решения нет проблем с переходом на летнее время. Также можно добавить /sub любое смещение на годы, месяцы, дни и т. Д.

Эти ответы кажутся мне запутанными, я предпочитаю:

Использование конструктора в миллисекундах дает желаемый объект даты.

Использование setDate () для добавления даты не решит вашу проблему, попробуйте добавить несколько дней в февраль месяц, если вы попытаетесь добавить в него новые дни, это не приведет к тому, что вы ожидали.

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

Если вы хотите просто добавить n дней к вашей дате, лучше всего пойти:

myDate.setDate (myDate.getDate () + n);

или длинная версия

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

Я создал эти расширения прошлой ночью:
вы можете передавать положительные или отрицательные значения;

Самое простое решение.

И еще много всего хорошего!

Редактировать: ссылка на jQuery удалена благодаря комментарию aikeru

Спасибо Джейсону за ответ, который работает, как и ожидалось, вот микс из вашего кода и удобного формата AnthonyWJones:

Документы mozilla для setDate () не указывают, что он будет обрабатывать сценарии на конец месяца. Смотрите https://developer.mozilla.org/en- США /документы /JavaScript /Справка /Global_Objects /Дата

Вот почему я использую setTime (), когда мне нужно добавить дни.

Думаю, я тоже дам ответ:
Лично мне нравится стараться избегать необоснованного объявления переменных, вызовов методов и вызовов конструкторов, так как все они дорогостоящие по производительности. (в пределах разумного, конечно)
Я собирался оставить это как просто комментарий под Ответом, данным @AnthonyWJones, но подумал лучше.

Выше будет уважать DST. Это означает, что если вы добавите количество дней, пересекающих DST, отображаемое время (часы) изменится, чтобы отразить это.
Пример:
2 ноября 2014 02:00 был конец летнего времени.

Источник

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

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

На этом уроке мы познакомимся с объектом 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() – только время.

Источник

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

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