Добавьте 10 минут в будущее в базу данных MySQL, используя PHP / PDO - PullRequest
1 голос
/ 01 июня 2011

Я хочу добавить в базу данных строку с количеством 'x' времени в будущем (разное для каждой строки). Я просмотрел все учебники / справки / все, что смог найти через Google, но, похоже, ничего не помогло.

Из того, что я могу сказать, лучший способ сделать это с MySQL.

SELECT ADDTIME(now(), '00:10:00')

Но как мне на самом деле заставить это работать с этим:

$new_row = $db->prepare("INSERT INTO table (field1, field2, time) VALUES(?, ?,?)");

$new_row->execute(array($field1, $field2, $timeintenminutes)) or dieWithDBError($new_row);

Ответы [ 4 ]

2 голосов
/ 01 июня 2011

Не проверено, но вы пробовали:

$new_row = $db->prepare("INSERT INTO table (field1, field2, time) VALUES(?, ?, ADDTIME(NOW(), '00:10:00'))");
$new_row->execute(array($field1, $field2)) or dieWithDBError($new_row);
0 голосов
/ 01 июня 2011

В Php strtotime () выполнит трюк для добавления значений ко времени или дате

$1hrInFuture = strtotime('now +1 hours');

str2time (сейчас); теперь будет понимать текущее время сервера и добавит к нему 1 час, вы можете добавить +1 неделю, +1 месяц ... и т. д.

, чтобы правильно отформатировать, используйте дату:

$1hrInFutureF = date('Y-m-d H:i:s',$1hrInFuture);

этот пример получит текущую дату сервера и добавит к ней 1 час;

Примечание: если не использовать «сейчас» в strtotime, будет сгенерирована дата «1 января 1970 00:00:00 UTC»;

Теперь вы можете получить дату из базы данных, вставить ее в strtotime, добавить к ней 1 час, отформатировать так, как вы хотите, и вставить ее обратно в новый столбец.

и для различного часового пояса между сервером mysql вы можете создать столбец в этой базе данных, установить случайный хеш внутри вставленной строки, выбрать значение normal_date для этой строки и вставить дату +1 ч, используя current_time_stamp и случайное число

INSERT INTO X (title,rnd_nb) VALUES ('titke','rnd_nb);
SELECT ID FROM X WHERE rnd_nb = $rnd_nb(php variable inside the function);
UPDATE `x` SET (1hrplus_date='$the_variable_containing_the_future_time') WHERE id='the_id_grabbed_from_the_second_query);

Так что, если вы видите, мы вставили туда случайное число, автоматически, если это currenttimestamp, он добавит current_time_stamp..etc и выберет строку, содержащую это число, получит его id, затем получит currenttimestamp, поместит его в функция strtotime, чтобы добавить к ней 1 час, обновить эту строку и установить столбец + 1hr, используя вывод strtotime.

Надеюсь, это полезно:)

0 голосов
/ 01 июня 2011
$future_time = date("Y-m-d H:i:s",time()+60*10);

Это даст вам добавленное 10-минутное время.

0 голосов
/ 01 июня 2011

Какой тип столбца time?

В PHP вы можете просто сделать это $AddSomeTime=time() + 60;, что добавит 1 минуту.

Полагаю, что хотите вместо обновления таблицы MySQL? Если вы хотите работать с запросом на обновление MySQL, используйте UPDATE YourTable SET valuet=(ADDTIME(now(), '00:10:00')) WHERE id=$id;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...