php: today to 2010-05-08 21:04:06, как я могу разделить это время на 30 дней? - PullRequest
0 голосов
/ 10 января 2010

от продолжительности

2010-01-09 21:04:06 **to** 2010-02-08 21:04:06

как я могу получить дату + время на каждом 30-дневном интервале?

Так что я должен получить

2010-02-09 21:04:06
2010-03-09 21:04:06
2010-04-09 21:04:06
2010-05-08 21:04:06

Так что каждый день скрипт проверяет текущую дату, чтобы определить, совпадает ли она с одной из вышеперечисленных. Если есть совпадение, обновите все строки, добавленные до сегодняшнего дня.

$point1 = "2010-02-09 21:04:06"

if (date("Y-m-d h:m:s") >= $point1){

mysql_query('UPDATE table SET status='checked' WHERE lastadded < $point1');

}

Ответы [ 2 ]

2 голосов
/ 10 января 2010

Получение 30 дней с сегодняшнего дня может быть сделано быстро через strtotime().

$nextMonth = date("Y-m-d H:i:s" ,strtotime("+30 days"));

Если у вас нет веских причин использовать PHP, я бы предложил использовать MySQL для этой задачи, поскольку он не будет полагаться на внешнюю логику для запроса.

1 голос
/ 10 января 2010

Я бы предложил MySQL сделать это для вас с помощью следующего запроса:

UPDATE table SET status='checked'
WHERE lastadded < DATE_SUB(NOW(), INTERVAL 30 DAY);

По-английски это обновляет каждую строку с тем, что было "lastadded" более 30 дней назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...