Avatar billede mccookie Seniormester
28. november 2017 - 11:57 Der er 2 kommentarer og
1 løsning

Prepared statement med beregning af tid

Hej,

Min virker som den tager sig ud her........
prepare("UPDATE vaskeri set aktiv = \"0\" where adresse = ? AND datetime < ? AND status = 'FEJL'");

Parameter nr. 2 er datetime ala "2017-11-01 10:12:00"
Dog ville gerne at dette parameter blev manipuleret til  "2017-11-01 10:02:00"
Altså - 10 minutter!

Jeg har forsøgt mig udi DATE_SUB.... men uden videre held og lidt søgning på fællesdrevet, har heller ikke hjulpet mig.

Håber det giver mening
Avatar billede michael_stim Ekspert
28. november 2017 - 14:48 #1
$dateTime = new DateTime('2017-11-17 05:05');
$dateTime->modify('+10 minutes');
Avatar billede arne_v Ekspert
28. november 2017 - 15:03 #2
Du kan enten traekke fra i PHP eller i MySQL.

I PHP kan du bruge DateTime klassen som Michael viser. Jeg ville nok bruge ->sub(new DateInterval('10M')) fremfor ->modify('+10 minutes'), men jeg er ikke PHP mand,

I MySQL kan du bruge DATE_SUB. Noget a la ... WHERE ... AND datetime < DATE_SUB(?, INTERVAL 10 MINUTE).

Alt utestet.

Jeg vil anbefale at traekke fra i PHP. Den udregning har intet at goere i databasen. Eneste grund til at ville lave den slags i databasen er de special tilfaelde hvor databasen og web serveren er i forskellige tidszoner.
Avatar billede mccookie Seniormester
28. november 2017 - 16:11 #3
Tak for inputene..... jeg brugte lidt fra jer begge :-)

$datetime = date_create($tid);
              date_sub($datetime, date_interval_create_from_date_string('10 minutes'));
              $mod_time = date_format($datetime, 'Y-m-d H:i:s');
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester