PHP:
// время создания сущности в UNIX-формате (напр., 150123456)
$time_created = $entity->time_created;
// сегодня
$today = time();
// выясняю день/месяц/год создания сущности
$d = date('j',$time_created);
$m = date('n',$time_created);
$y = date('Y',$time_created);
// указываю течение 3-го, 6-го и 7-го дня с момента создания сущности
$three_days = mktime(0, 0, 0, $m, $d+3, $y);
$six_days = mktime(0, 0, 0, $m, $d+6, $y);
$seven_days = mktime(0, 0, 0, $m, $d+7, $y);
Далее в коде ставлю задачи в зависимости от того, какой сегодня день ото дня, когда создана сущность, напр.:
if($today == $three_days) {
// тут логика
}
if($today == $six_days) {
// тут логика
}
if($today == $seven_days) {
// тут логика
}
Допустим, это уведомления с отправкой на email.
Запускаю крон ежедневно на выполнение этой задачи, напр. в 0-01.
Срабатывает не всегда.
Ставлю на каждый час. Такая же проблема.
Подозреваю, что ошибка в указании периодов, т.е. необходимо точное соответствие mktime'ов.
Так:
if($today >= $three_days) {
// тут логика
}
в силу ряда причин нельзя.
Сам я ни разу не профи, а только учусь, поэтому прошу помочь с решением или дать правильный совет.