Avatar billede coolzone Nybegynder
01. oktober 2004 - 22:48 Der er 7 kommentarer og
1 løsning

Tid i PHP

Hej alle!

Jeg har denne PHP kode:

SELECT *, time_format(Daggry, '%H:%i') AS Daggry FROM tider WHERE dato='$dato'

Bagefter udskrives resultatet med:

print $row[Daggry];

Hvordan tilføjer jeg tid til $row[Daggry]?

Et sted udskrives resultatet af $row[Daggry] og jeg vil gerne have et andet sted, hvor resultatet $row[Daggry] udskrives plus 10 minutter.

Hvordan gøres dette? Jeg har prøvet mange forskellige kombinationer og har googlet i timer uden succes.

Feltet i MySQL er TIME, DATE_ADD med interval 10 minute - virker ikke. Det giver bare det samme resultat.

Lad være med at skrive noget med mindre du skriver præcis hvordan det skal opstilles og lad være med at et gæt!
Avatar billede thomashove Nybegynder
01. oktober 2004 - 22:58 #1
fik du ikke nok hjælp i http://www.eksperten.dk/spm/545966
Avatar billede coolzone Nybegynder
01. oktober 2004 - 22:59 #2
Hvis det virkede havde jeg jo nok ikke gentaget spørgsmålet her vel!?
Avatar billede detox Nybegynder
01. oktober 2004 - 23:14 #3
Det er ikke så enkelt med et TIME felt, men denne kan klare det:

SELECT  *, time_format(Daggry, '%H:%i') Daggry1, time_format(sec_to_time(MOD(TIME_TO_SEC(Daggry)+600, 86400)), '%H:%i') Daggry2 FROM tider WHERE dato='$dato'
Avatar billede detox Nybegynder
01. oktober 2004 - 23:19 #4
De to tider ligger så i: $row['Daggry1'] og $row['Daggry2']
Avatar billede coolzone Nybegynder
01. oktober 2004 - 23:30 #5
Detox - tusind tak!! Endelig et fornuftigt svar og en løsning der virker med det samme!

Kan jeg få dig til at kommentere svaret så jeg forstår hvad linien gør?

Og du skriver at det ikke er så enkelt med et TIME felt, hvad ville en mere enkelt løsning være? Hvis det skulle være DATETIME og interval metoden så har jeg afprøvet den, men kunne heller ikke få den til at virke.
Avatar billede detox Nybegynder
01. oktober 2004 - 23:40 #6
Jo jeg kan da lige løbe den her igennem:

time_format(sec_to_time(MOD(TIME_TO_SEC(Daggry)+600, 86400)), '%H:%i')

For at tage den indefra:

TIME_TO_SEC(Daggry)+600 // Giver antal sekunder + 10 minutter
MOD(TIME_TO_SEC(Daggry)+600, 86400) // Giver antal sekunder minus evt. hele døgn(86400 sekunder)
sec_to_time(MOD(TIME_TO_SEC(Daggry)+600, 86400)) // Laver det igen til TIME
time_format(sec_to_time(MOD(TIME_TO_SEC(Daggry)+600, 86400)), '%H:%i') // Formaterer output

Jeg tænkte faktisk på DATETIME og INTERVAL, men hvis det ikke virker for dig er det jo ligegyldigt.
Avatar billede detox Nybegynder
01. oktober 2004 - 23:46 #7
Og velbekommen forresten.
Avatar billede coolzone Nybegynder
01. oktober 2004 - 23:53 #8
Tak for forklaringen detox! :-)

Til fremtidig reference: det er sådan man besvarer et spørgsmål! Ikke: "du skal konvertere til timestamp og så tilbage igen" - et smartass svar som man ikke kan bruge til mere end man kan holde varmen ved at tisse i bukserne en kold vinternat!
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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