ПЛАТФОРМА:
PHP и MySQL
Я храню дату + время в базе данных в следующем формате: date ("Y-m-d H: i: s"). Пример значения, которое у меня есть в моей БД: 2010-01-05 07:36:33. В моем сценарии я установил часовой пояс как date_default_timezone_set("America/Chicago");
ПРОБЛЕМА:
Я где-то читал о UNIX_TIMESTAMP, и я использовал это в своем запросе. Значение UNIX_TIMESTAMP для значения даты из БД, похоже, отличается от strotime (Значение даты в БД).
Пример:
Учтите, что одним из значений БД для столбца даты в моей БД является 2010-01-05 07: 36: 33
Теперь, если я получу эту дату следующим образом:
$result = mysql_query("SELECT date, UNIX_TIMESTAMP(date) AS ut_date FROM table");
$row = mysql_fetch_row($result);
//The result of this is:
$row['date'] = 2010-01-05 07:36:33
$row['ut_date'] = 1262657193
strtotime($row['date']) gives 1262698593
Для дальнейших вычислений в приложении мне нужно работать с strtotime (date). У меня есть много сравнений, чтобы сделать это. Моя проблема была бы решена, если бы UNIX_TIMESTAMP (дата) был таким же, как strtotime (дата). Один из примеров запроса, с которым мне нужно работать, это:
$gap = 1; // time in minutes
$tm2 = date ("Y-m-d H:i:s", mktime (date("H"),date("i")-$gap,date("s"),date("m"),date("d"),date("Y")));
$target = strtotime($tm2);
$result2 = mysql_query("UPDATE table2 SET stat = 0 WHERE UNIX_TIMESTAMP(today_login_time) < $target ");
Выше приведены неверные результаты. Если я попытаюсь заменить UNIX_TIMESTAMP на strtotime в приведенном выше запросе, это выдаст мне ошибку, так как функция strtotime кажется функцией PHP, а не соответствующей функцией mySQL. Есть ли соответствующая функция MySQL для strtotime? Как мне решить вышеуказанную проблему? Код для решения вышеуказанной проблемы высоко ценится.
Заранее спасибо.