<?php
date_default_timezone_set('Asia/Kolkata');
$currentDate = date("d M Y h:i:s a");
$sql=mysql_query("update products set past=0 where valid_date>'".$currentDate."'");
$sql1=mysql_query("update products set past=1 where valid_date<'".$currentDate."'");
?>
Выше мой код. если valid_date
это 31 января 2017 12:25:07 вечера SQL-запрос по-прежнему принимает это как будущую дату (т.е. больше, чем сегодняшняя дата), но он принимает 05 февраля 2017 12:25:07 вечера как прошлый. Точно сказать, что запрос сравнивает даты февраля правильно, а январь неправильно.
что не так в моем коде?
Попробуй это,
<?php
date_default_timezone_set('Asia/Kolkata');
$sql=mysql_query("update products set past = CASE WHEN valid_date > NOW() THEN 0 WHEN valide_date < NOW() THEN 1 END where 1 = 1");
?>
Это документация для СЕЙЧАС() функция MySQL
И, как говорится в вашем состоянии, этот код будет работать.
Других решений пока нет …