Я новичок в php. И я хотел бы знать некоторые из манипуляций с датами в php.
// Get Current date $date = date("Ymd");
Что делать, если я хочу вычесть текущую дату и конкретную дату, скажем, «сегодня – 2008-06-26»?
Как сделать математическую манипуляцию датой (добавить, минус, многократно и т. Д.) В php?
Если сегодня подписчик подписывается на сегодняшний день 2009-06-26, через 1 неделю я хочу удалить свою учетную запись из своей базы данных, как мне это сделать? (Я использую mysql)
Что делать, если мы сохраняем дату пользователя в нашей базе данных? Например, мы можем хранить дату bday пользователя, поэтому, когда в день его bday мы отправили ему по электронной почте. Что еще может сделать дата?
Прежде всего, вам нужно понять разницу между date()
, time()
и mktime()
.
date()
используется только для отображения. Никогда не используйте его для математических манипуляций.
time()
возвращает текущую time()
timestamp
( int
представляет текущее время и дату).
mktime()
, без каких-либо параметров, совпадает с time()
. С параметрами он позволяет получить временную timestamp
для заданного времени. Параметры находятся в следующем порядке: час, минута, секунда, месяц, день, год.
Теперь, ваши вопросы :
Чтобы сделать манипуляции во времени, вы можете сделать следующее:
$today = mktime(0,0,0); //Today, time neutral $otherDate = mktime(0, 0, 0, 6, 26, 2008); //2008-06-26, time neutral $secondsBetweenDates = $today - $otherDate;
Вам лучше сделать что-то подобное прямо в вашем SQL. Здесь вы можете сделать это для двух наиболее распространенных серверов баз данных, работающих на PHP. Я предполагаю, что DateSubscribed
имеет действительный тип данных даты.
--- MySQL DELETE FROM `subscribers` WHERE NOW() < DATE_ADD(`DateSubscribed`, INTERVAL 1 WEEKS); --- PostgreSQL DELETE FROM "subscribers" WHERE CURRENT_TIMESTAMP < ("DateSubscribed" + interval '1 week');
Это зависит от вашей СУБД. Вот страницы документации, связанные с функциями Date / Time для MySQL и PostgreSQL.
Q1: Сначала преобразуйте даты в метки времени. Затем вы можете выполнить математику с отметками времени и преобразовать их в даты. Например:
$num_seconds_between = strtotime('today') - strtotime('2008-06-26'); $num_days_between = $num_seconds_between / 60 / 60 / 24;
Q2: узнать дату удаления его учетной записи (в формате базы данных «дата / время»):
date('Ymd H:i:s', strtotime('+1 week', strtotime('2009-06-26')));
Затем вы можете удалить его любым способом. Похоже, вы можете использовать работу cron .
Q3: Почти все, что вам нужно для этого. Если у вас есть конкретные вопросы о других способностях, разместите их здесь. Вы можете узнать руководство по PHP для получения дополнительной информации.