2014-12-15 2 views
1

Я хочу отслеживать статус, если в течение 2 дней нет отправки продукта, тогда есть уведомление, чтобы предупредить их по электронной почте для отправки. Дата отгрузки может быть получать от даты электронной почты, но это возможно, если я сравниваю:Сравнение даты PHP между двумя датами

//MAX(date_shipment = latest date record of shipment in database 

if (MAX(date_shipment) - dateNow() >= 2 days) 
{ 
    $update ="update table1 set remarks = 'No shipment received since 2 days ago', status = 'warning'"; 
    $result = mysql_query($update); 
} 
else 
{ } 

Но есть проблема, которую я думаю, потому что этот код сравнить с dateNow(). Как получилось, если получена новая отправка, все же код сравнения даты работает, но не сравнивается с этой новой датой отгрузки. Я понятия не имею, как объяснить и как начать выполнять эту функцию.

Может ли кто-нибудь посоветовать, как правильно решить эту проблему? Заранее спасибо

+0

Пожалуйста, покажите нам свой код. Этого недостаточно для нас. –

+0

'if (MAX (date_shipment) - dateNow()> = 2 дня)' это не будет анализировать в PHP. Ваш 'update table1 set remarks = 'No shipment, полученный с 2 ​​дня назад', запрос status = 'warning'' обновит каждую строку вашей таблицы, поскольку вы не указали предложение WHERE. – sjagr

+0

'date_shipment' должно быть' $ date_shipment'? Является ли это элементом даты из базы данных? – EternalHour

ответ

0

Давайте попробуем этот код:

$currentDate = getdate(); 
$anotherDate = MAX(date_shipment); //whatever this is 

//this will give sql format to the current date 
$year = $currentDate['year']; 
$month = $currentDate['mon']; 
$day = $currentDate['mday']; 
$currentDate = $year.'-'.$month.'-'.$day; 

$date1 = date_create($anotherDate); //assuming your date has sql format 
$date2 = date_create($currentDate); 

$difference = date_diff($date1, $date2); 
$difference = str_replace(" days","",$difference->format('%R%a days')); 

if ($difference >= 2){ 
    $update ="update table1 set remarks = 'No shipment received since 2 days ago', status = 'warning'"; 
    $result = mysql_query($update); 
} 
else 
{ } //I don't get what you want here 
+0

Я получил эту ошибку «Неустранимая ошибка: вызов неопределенной функции date_create () ", когда я следую этому коду. Есть идеи? – den

+0

это как функция $ date = date_create ("2013-03-15"); но мы форматируем функцию даты $ currentDate = $ year .'- '. $ month .'-'. $ day; – den

+0

Оказывается, функция date_create() существует. Проверьте здесь: http://www.w3schools.com/php/func_date_date_create.asp – Verhaeren

0

Это кажется, что вы пытаетесь сделать. Не используйте mysql больше, используйте mysqli.

$dbDate = mysql_query("SELECT `date_shipment` FROM table1"); 

$addedDate = new DateTime(); 
$addedDate->modify('+2 day'); 

if ($dbDate['date_shipment'] >= $addedDate) 
{ 
    $update ="UPDATE table1 SET remarks = 'No shipment received since 2 days ago', 
    status = 'warning'"; 
    $result = mysql_query($update); 
} 
else 
{ } 
+0

, но я использую mysql сейчас. Программа отображает эту ошибку «Вызов неопределенной функции mysqli_query()» при запуске этого кода – den

+0

Я адаптировал свой ответ к mysqli, потому что это то, что вы должны использовать. Попробуй это сейчас. – EternalHour

+0

все еще есть ошибка «Неустранимая ошибка: вызов неопределенной функции mysqli_query()», когда я использую mysqli – den

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