прибавить время к дате php
Дата и время в PHP
В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.
PHP-функции для работы с датой и временем
PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:
time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:
seconds | Секунды (0-59) |
minutes | Минуты (0-59) |
hours | Часы (0-23) |
mday | День месяца (1-31) |
wday | День недели (0-6), начиная с воскресенья |
mon | Месяц (1-12) |
year | Год |
yday | День года (0-365) |
weekday | Название дня недели (например, Friday) |
month | Название месяца (например, January) |
0 | Абсолютное время |
Пример 1
РЕЗУЛЬТАТ ПРИМЕРА 1:
seconds = 30
minutes = 50
hours = 11
mday = 26
wday = 0
mon = 9
year = 2021
yday = 268
weekday = Sunday
month = September
0 = 1632646230
Сегодня: 26.9.2021
date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:
Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.
Пример 2
РЕЗУЛЬТАТ ПРИМЕРА 2:
Сегодня 26.09.21 11:50
часы
минуты
секунды
месяц
день месяца
год
Пример 3
РЕЗУЛЬТАТ ПРИМЕРА 3:
22 January 1971, at 1.30 pm, Friday
Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.
Пример 4
РЕЗУЛЬТАТ ПРИМЕРА 4:
Sunday 26 September 2021 11:50
Сегодня Sunday 26 September 2021 11:50:30
MSK
Работа с датами в PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Для работы с датами в PHP применяются различные функции. Мы начнем изучение с функции time.
Функция time, формат timestamp
Функция time возвращает разницу в секундах между 1-го января 1970 года и текущим моментом времени. Такое представление даты называется форматом timestamp.
Зачем нужен timestamp?
Время в формате timestamp используется для того, чтобы найти разницу между датами в секундах.
С помощью функции time мы можем получить только текущий момент времени. Чтобы получить timestamp за любую дату следует использовать функцию mktime:
Функция mktime
Функция mktime работает аналогично функции time, но, в отличие от нее, принимает параметры: mktime(час, минута, секунда, месяц, день, год) (обратите внимание на то, что месяц и день переставлены местами ). Посмотрите примеры работы:
Полученная разница в секундах будет выглядеть так: 683247029 (обновите страницу и это число поменяется).
Вооружившись знаниями о том, что такое формат timestamp (он нам еще понадобится в дальнейшем), изучим более полезные функции для работы с датами, например, функцию date.
Функция date
Функция date выводит текущие дату и время в заданном формате.
Формат задается управляющими командами (английскими буквами), при этом можно вставлять любые разделители между ними (дефисы, двоеточие и так далее).
Примеры работы с date:
Второй параметр функции date
Функция date имеет второй необязательный параметр, который принимает момент времени в формате timestamp. Если передать этот параметр, то функция date отформатирует не текущий момент времени, а тот, который передан вторым параметром. Этот timestamp можно получить, к примеру, через mktime (но не обязательно):
Функция strtotime
Следующая полезная функция, которую мы разберем, называется strtotime.
К примеру, я могу передать ей строку ‘2025-12-31’ и функция сама разберет, где тут год, где месяц, а где день, и вернет эту дату в формате timestamp.
Все форматы можно посмотреть тут.
Следующий код вернет дату предыдущего понедельника:
Как добавить или отнять дату
Пример 1
Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 1 день и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Пример 2
Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 3 дня и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Пример 3
Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 3 дня и 1 месяц и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Пример 4
Давайте создадим объект с датой за 2025 год, 1 месяц, 1 день, затем отнимем от нее 1 день и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Что вам делать дальше:
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Как прибавить к дате 1 день?
Я не программист, но занимаюсь одним сайтом как администратор. Потребовалось прибавить к дате 1 день. Мне кажется что это нужно сделать вот тут:
Не подскажете, как это все прописать?
3 ответа 3
Выберите тот вариант, который подходит:
Если в общем случае, можно и strtotime заставить «переводить часы», тут я просто прибавил 86400 секунд (один день) к дате.
Тут можно уже и +5 weeks написать и что угодно вместо +1 day
Заработал вот такой вариант:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками php дата или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.9.24.40305
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Добавление минут к дате в PHP
Я действительно застрял с добавлением X минут в datetime, после выполнения большого количества ручного чтения google и PHP, я, похоже, никуда не добираюсь.
формат времени даты у меня есть:
2011-11-17 05:05 : year-month-day hour:minute
минут для добавления будет просто число от 0 до 59
Я хотел бы, чтобы выход был таким же, как формат ввода с добавленными минутами.
может кто-нибудь дать мне пример кода, как мои попытки не кажется меня куда-нибудь?
11 ответов
класс DateTime PHP есть полезное изменить метод, который принимает простой для понимания текст.
вы также можете использовать интерполяцию строк или конкатенацию для ее параметризации:
если вы не знакомы с strtotime еще, вы лучше головой php.net чтобы обнаружить, что это великая сила 🙂
вы можете сделать это с помощью собственных функций легко:
Я бы рекомендовал метод класса DateTime, только что опубликованный Тимом.
Я думал, что это поможет некоторым при работе с часовыми поясами. Мое измененное решение основано на решении @Tim Cooper, правильном ответе выше.
жирным шрифтом, строка 3, является добавление. Надеюсь, это поможет и некоторым людям.
немного поздний ответ, но метод, который я бы использовал:
Если вы хотите сделать переменную, содержащую минут.
тогда я думаю, что это отличный способ достичь этого.
Я написал функцию, которая возвращает дату в виде строки с дополнительными параметрами:
1.) время: String / ex: «+5 минут » (по умолчанию = текущее время)
2.) формат: String / ex: «Y-m-d H: i: s» (по умолчанию = » Y-m-d H:i:s O»)
очевидно, что это не полноценный метод. Просто быстрая и простая функция для изменения / форматирования текущей даты.
пример:
еще один пример функции для этого: (изменение форматов времени и интервалов, как вам нравится, в соответствии с этого для функцию.дата и это для DateInterval):
Как прибавить к дате 1 день?
я не программист, но занимаюсь одним сайтом как администратор. Потребовалось прибавить к дате 1 день. Мне кажется что это нужно сделать вот тут:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как прибавить кол-во дней к дате
Как использовать функцию Date_add не могу разобраться Вот что у меня 2
Спасибо! У меня заработал вот такой вариант:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Прибавить заданный интервал к дате
Доброго всем времени суток. В общем, наверное, сабж. Если так, то киньте ссылочки соответствующие.
К текущей дате time() прибавить календарный месяц
как к текущей дате time() прибавить календарный месяц
Получить timezone пользователя и прибавить его к дате, лежащей в БД
Добрый вечер! У меня возникла проблема, есть время по Гринвичу которая лежит в бд, мне необходимо.
Как к текущей дате прибавить 1 день
Здравствуйте, подскажите пожалуйста есть форма на ней кнопка и поле, в поле в «значение по.