2013-08-02 3 views
0

Я хочу запустить cronjob, который проверяет таблицу db, где timepamp меньше текущего времени + 1 месяц. Но не знаю, как я могу это сделать.Сравнение двух временных меток в запросе

Я пробовал что-то, но это не работает.

$buy_time=strtotime($row['sdate']); 
$current_time= strtotime("now"); 
$diff=$current_time - $buy_time; 

$SQL = "UPDATE product SET status=0 WHERE sdate <'$diff'"; 
$res= mysqli_query($link,$SQL); 
+0

Какой формат $ строки [ 'SDATE'] в – JohnnyFaldo

+0

, что тип данных это ваш столбец 'sdate'? – NDM

+0

В этом вопросе есть несколько ответов, которые выглядят так, как будто они будут работать для вас: http://stackoverflow.com/a/3923228/1352271 – JohnnyFaldo

ответ

1

Предполагая, что вы используете родной MySQL поле даты/дату-время для этого sdate поля, то не использовать PHP для создания даты и вставить их в запрос, сделать все это в MySQL напрямую:

... WHERE sdate >= (NOW() - INTERVAL 1 MONTH) 
+0

и использовать' DATE (FROM_UNIXTIME (sdate)) 'if' sdate' - это временная отметка unix – NDM

0
$currentTime = time(); 
$timePlusMonth = $currentTime+30*24*60*60; //30 days * 24 hours * 60 minutes * 60 seconds 
$timePlusMonth = date("Y-m-d H:i:s", $timePlusMonth); 

$query = "UPDATE product SET status=0 WHERE sdate < '$timePlusMonth'"; 
mysqli_query($link, $query); 

в столбце 'SDATE' должен быть в Ymd H: I: сек формат (2013-08-02 16:02:45)

+0

Я хочу обновить до статуса обновления, где 'sdate-currenttime> 1 месяц' –

+0

Это будет неудачно плохо, если вы запустите его 1 марта. Вы вернетесь в январе и в конечном итоге потянете на два месяца. –

+0

thn, что делать ... Я делаю это для отмены продукта на xpiration –

Смежные вопросы