Avatar billede nielschristiansen Nybegynder
20. juni 2005 - 21:00 Der er 16 kommentarer og
1 løsning

Regne med tid i php

Hej jeg prøver at lave et phpscript hvor jeg kan indtaste et tidspunt feks:12:30 og så få php til at trække feks. 1:15 fra dette tidspunkt kan dette lade sig gøre ??
Avatar billede ljm21 Praktikant
20. juni 2005 - 21:11 #1
Prøv at kigge lidt på funktionen strtotime på www.php.net

Lars
Avatar billede venchil Nybegynder
20. juni 2005 - 21:12 #2
Ja, det kan det da... Læs lidt i PHP manualen http://dk.php.net/manual/en/function.date.php, derefter er det bare at trække den ene tid fra den anden :)
Avatar billede nielschristiansen Nybegynder
20. juni 2005 - 21:30 #3
ja det ser fint ud har også fundet ud af hvordan den skriver tidspunktet feks
date("H:i"); men hvordan ser i lige jeg trække noget fra tidspunktet ??
Avatar billede nielschristiansen Nybegynder
20. juni 2005 - 21:44 #4
Jeg har næsten løst det nu dog men den lille variation at lægger jeg feks 20 minuter til 45 minutter bliver resultatet 65 minuter hvordan får jeg den til at skifte time så ??
Avatar billede nielschristiansen Nybegynder
20. juni 2005 - 21:53 #5
hvis i giver et svar får i point jeg har brugt lidt fra begge links :) fik dog aldrig timer til selv automatisk at skifte
Avatar billede ljm21 Praktikant
20. juni 2005 - 22:12 #6
Du kan finde timer og minutter sådan her (ikke testet):
$in //fx 65 minutter
$timer =  floor($in/60) //=1
$min = $in - 60*$timer //=5

Lars
Avatar billede nielschristiansen Nybegynder
21. juni 2005 - 10:54 #7
jeg har nu fundet ud af hvordan jeg trækker en time fra et tidspunkt nu er problemmet bare når jeg feks. skriver 12:25 i formlen hvordan får jeg så php til at vide det er et klokkeslæt jeg har indtastet jeg har forsøgt følgende
$tid = $_POST[time]*360000;
date("H:i",$tid);
men dette virker ikke

har i nogen ide om hvordan jeg får formateret tallet i formlen til et tidspunkt så jeg kan regne med det ??
Avatar billede nielschristiansen Nybegynder
21. juni 2005 - 11:05 #8
hvis jeg nu skriver feks 1400 kan jeg få dette tidspunkt konvateret til sekunder som jeg kan bruge i date funktionen =??
Avatar billede ljm21 Praktikant
21. juni 2005 - 11:23 #9
$tid = explode(":",$_POST[time]); //kræver at timer og minutter er adskilt af :
$tid = 3600*$tid[0]+60*$tid[1]

Lars
Avatar billede nielschristiansen Nybegynder
21. juni 2005 - 11:36 #10
når jeg skriver $tid = explode(":",$_POST[time]);
echo $tid Får jeg følgende ARRAY i feltet

og når jeg skriver
$tid = explode(":",$_POST[time]); //kræver at timer og minutter er adskilt af :
$test =$tid = 3600*$tid[0]+60*$tid[1];
echo  $test får jeg nul hvad gør jeg forkert her :)

Mvh
Niels Christiansen
Avatar billede nielschristiansen Nybegynder
21. juni 2005 - 12:18 #11
nu er det løkkes mig at få den til at skrive det aktuelle tidspunkt ved at dele tiden op i timer og minuter altså
$tid = mktime($_POST[timer],$_POST[minuter]);
$test = date("H:i,$tid);
men nu virker det ikke at skrive feks -(60*60)så bliver tallet et minus tal og det hjælper ikke skrive feks -5 for så trækker den godt nok 5 timer fra men så skriver den feks.hvis tiden var 22:00 skriver den bare 17 så nu mangler jeg jo sekunderne igen en formatering nogle der kan hjælpe med dette ??

PLEASE PLEASE

Mvh
Niels Christiansen
Avatar billede ljm21 Praktikant
21. juni 2005 - 14:06 #12
Kan du ikke prøve at smide din kode herind? Så skal jeg prøve at kigge på det.

Lars
Avatar billede nielschristiansen Nybegynder
21. juni 2005 - 16:49 #13
jo selvfølgelig
Koden til at indtaste data <html>
<head>
<link rel="stylesheet" type="text/css" href="body.css"
</head>
<body>

<h1 align="center">Mission sheet</h1>
<table align="center">
<tr>
<td>
<form action="mis.php" method="post">
<b>Vælg Mission<br /></b>
<select style="width:150px;" name="select">
<option>mis</option>
<option>mis</option>
<option>mis</option>
<option>mis</option>
<option>mis</option>
</select></td><td>
<b>pilot 1<br />
<input type="text" name="pilot1"></td><td>
<b>Pilot 2<br />
<input type="text" name="pilot2"></td></tr><tr><td>
<b>Pilot 3<br />
<input type="text" name="pilot3"></td><td>
<b>Pilot 4<br />
<input type="text" name="pilot4"></td><td>
<b>Intel<br />
<input type="text" name="in"></td></tr><tr><td>
<b>planner 1<br />
<input type="text" name="plan1"></td><td>
<b>planner 2<br />
<input type="text" name="plan2"></td>
<td>
<b>Steptid<br />
<input type="text" name="timer"></td>
</tr><tr><td>
<input type="submit" value="opret"></td><td><input type="reset" value="Reset"></td>
</form>
</tr>
</table>
</body>
</html>

og så php'en

<?$HV = MKTIME($_POST[TIMER],10);
$TEST = MKTIME(5,10,10);
$tid = mktime($_POST[timer],$_POST[minuter]);
$F = DATE("H:i",$tid)-DATE("H:i",$TEST);
echo DATE("H:i",HV);

Jeg har forkortet det ned så du har fået det vigtigste :)

Mvh
Niels Christiansen
Avatar billede nielschristiansen Nybegynder
21. juni 2005 - 20:06 #14
HAR FUNDET UD AF LIDT MERE
$tid = mktime($_POST[timer],$_POST[minut]) - mktime(6,45);
MEN DEN RETUNERER IKKE KLOKKESLÆT DER GÅR TIL 60 MINUTER MEN 100 MINUTER
Avatar billede ljm21 Praktikant
21. juni 2005 - 22:12 #15
Hvad er det så du vil? Du siger du vil trække tid fra hinanden, men i din form er der kun 1 indtastningsfelt til tid. Et tal er ikke nok til at regne noget ud...:-)

I mis.php henviser du til $_POST[timer] og $_POST[minutter]. De er slet ikke i din form, og er derfor ikke gyldige variable.

Lars
Avatar billede nielschristiansen Nybegynder
22. juni 2005 - 18:24 #16
det jeg har lavet er 2 felter i forms et til timer et til minuter men har åbenbart sovet lidt i timen da jeg lage formen ud så du kunne se det sorry min fejl det var den første version men jeg har fået det til at virke :)
takker dog alligevel for din hjælp
Mvh
Niels Christianse
Avatar billede nielschristiansen Nybegynder
22. juni 2005 - 22:10 #17
lukker den
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