поиск с использованием имен тегов, [php] [date] addзаключенных в квадратные скобки, например, в поле поиска. Вы найдете множество ответов на подобные вопросы.
Mikel
Ответы:
247
Это должно быть
echo date('Y-m-d', strtotime("+30 days"));
strtotime
ожидает получить строку, содержащую формат даты на английском языке (США), и попытается преобразовать этот формат в метку времени Unix (количество секунд с 1 января 1970 г. 00:00:00 UTC) относительно метки времени, указанной в now, или текущее время, если сейчас не указано.
пока date
Возвращает строку, отформатированную в соответствии с заданной строкой формата, используя заданную целочисленную метку времени или текущее время, если метка времени не указана.
Я думаю, что это вызовет проблемы при переходе на летнее время и других забавных элементах календаря. Это вроде как зависит от контекста. Вам нужно подумать, если вы ищете 30 24-часовых блоков, которые при переходе на летнее время могут привести к 23:00.
JJ Rohrer
1
@JJRohrer нет, не будет. strtotimeбудет учитывать любое летнее время для настроенного часового пояса. Переход на летнее время - проблема только тогда, когда вы делаете что-то вроде этого OP: stackoverflow.com/questions/4066035
Гордон
Дело принято. Я подошел к этому вопросу, пытаясь решить что-то более близкое к вопросу, на который вы ссылались. Я надеюсь, что мой вышеупомянутый комментарий заставит других серьезно задуматься о том, чтобы серьезно относиться к своим расчетам даты - обо всех исключениях легко забыть.
JJ Rohrer
64
Это может быть хорошо
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));return date("Y-m-d", $date);}
Вышеупомянутое решение также может быть уплотнено в одну линию, если вам нужно быстрое решение и вы не хотите создавать функцию. echo date ("Ymd", strtotime ("+ 12days", strtotime (20130101)))
Этот метод касается перехода на летнее время. Я не уверен, что php учитывает другие причуды времени, такие как дополнительные секунды, но, в зависимости от ваших потребностей, вам, вероятно, лучше использовать DateTime или StrToTime, если вы имеете дело с календарными днями.
JJ Rohrer
@chx Это решение также более тщательно позволяет дату; например, новый DateTime ('2016-12-09 10:35:58'); это происходит из метки времени базы данных ...
Вы также можете добавить это, если хотите, чтобы дата была 5 дней от определенной даты:
У вас есть переменная с такой датой (полученная из ввода или БД или просто жестко закодированная):
$today ="2015-06-15";// Or can put $today = date ("Y-m-d");
$fiveDays = date ("Y-m-d", strtotime ($today ."+5 days"));
echo $fiveDays;// Will output 2015-06-20
Вы можете использовать класс DateTime, встроенный в PHP. У него есть метод под названием «добавить», и то, как он используется, подробно продемонстрирован в руководстве: http://www.php.net/manual/en/datetime.add.php
[php] [date] add
заключенных в квадратные скобки, например, в поле поиска. Вы найдете множество ответов на подобные вопросы.Ответы:
Это должно быть
strtotime
пока
date
См. Страницы руководства для
и их функциональные сигнатуры.
источник
strtotime
будет учитывать любое летнее время для настроенного часового пояса. Переход на летнее время - проблема только тогда, когда вы делаете что-то вроде этого OP: stackoverflow.com/questions/4066035Это может быть хорошо
источник
или
print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));
источник
источник
Вы также можете добавить это, если хотите, чтобы дата была 5 дней от определенной даты:
У вас есть переменная с такой датой (полученная из ввода или БД или просто жестко закодированная):
источник
Имейте в виду, что изменение часов из-за перехода на летнее время может вызвать некоторые проблемы при подсчете только дней.
Вот небольшая функция php, которая позаботится об этом:
источник
Вы также можете попробовать:
$date->modify("+30 days");
источник
Вы можете сделать это, управляя тайм- кодом или используя strtotime () . Вот пример использования strtotime.
источник
Вы можете использовать strtotime ()
$data['created'] = date('Y-m-d H:m:s', strtotime('+1 week'));
источник
Я знаю, что это старый вопрос, но для PHP <5.3 вы можете попробовать следующее:
источник
Вы можете использовать класс DateTime, встроенный в PHP. У него есть метод под названием «добавить», и то, как он используется, подробно продемонстрирован в руководстве: http://www.php.net/manual/en/datetime.add.php
Однако для этого требуется PHP 5.3.0.
источник
источник
Вы можете попробовать это.
источник
Просто и лучше
Попробуй это
источник
источник
Используйте эту функцию addDate () для добавления или вычитания дней, месяцев или лет (вам также понадобится дополнительная функцияformatDate ())
Примечание: только для php> = 5.3
источник
Используйте следующий код.
Ссылка найдена здесь - Как добавить дни к текущей дате в PHP
источник
источник
Несмотря на то, что это старый вопрос, такой способ решения потребует многих ситуаций и кажется надежным. У вас должен быть PHP 5.3.0 или выше.
У вас может быть любой формат строки даты, и это сработает.
источник