Slettet bruger
18. juni 2007 - 02:17
Der er
12 kommentarer og 1 løsning
tid mellem 2 datoet
hej jeg har lavet et log system hvor jeg registrer 2 datoer med tid og dato altså logon = 18-06-07 06:30 og logOut = 18-06-07 20:30 det jeg gerne ville kunne var at at beregne total timer ud og og deledem op i timer mellem 06:00-15:00, 15:00-22:00 og 22:00-06:00 i tre input felter så jeg kan poste dem i min db Pleas hjælp mig:)
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
tiden mellem to tidspunkter kan du finde med mktime: $totaltid = mktime(20, 30, 0, 06, 18, 2007) - mktime(06, 30, 0, 06, 18, 2007); Hvis du vil have det ud i timer i stedet for sekunder er det bare at regne det om: $timer = $totaltid/60/60;
Slettet bruger
18. juni 2007 - 23:53
#4
at få total tid er ikke mit problem, problemet er netop at få total tiden delt op, på de tre tidspunkter
Hvad hvis login er: 15-06-07 06:30 og logud er: 19-06-07 07:46 ? Skal den også putte det i de rigtige båse?
Slettet bruger
19. juni 2007 - 07:53
#6
login og logud strækker sig kun over 24 timer så man kan starte en 18 og slutte den 19, det er til et vakt skema jeg arbejder på
Slettet bruger
19. juni 2007 - 08:04
#7
så hvis du starter 18-06-2007 22:30 og slutter 19-06-2007 07:00 er der 8.5 timer... 7.5 timer i input feltet 22:00-06:00 og 1 time i input feltet 06:00-15:00
Det kan nok laves smartere, men damn jeg har slidt i det! :o) Prøv lige denne kode: <?php //http://www.eksperten.dk/spm/783664 $interval = array( array('start_time' => '06:00:00', 'start_day' => 0, 'end_time' => '15:00:00', 'end_day' => 0), array('start_time' => '15:00:00', 'start_day' => 0, 'end_time' => '22:00:00', 'end_day' => 0), array('start_time' => '22:00:00', 'start_day' => 0, 'end_time' => '06:00:00', 'end_day' => 1) ); $hours = array(); $start_time = '18-06-2007 22:30:00'; $end_time = '19-06-2007 17:00:00'; $start_unix = strtotime($start_time); $end_unix = strtotime($end_time); $start_date = getdate($start_unix); $end_date = getdate($end_unix); echo 'Tiden vi regner på er:<br />'; echo 'Start: ' . $start_time . '<br />'; echo 'End: ' . $end_time . '<hr />'; foreach($interval AS $array) { $start_start = strtotime(($start_date['mday']+$array['start_day']).'-'.$start_date['mon'].'-'.$start_date['year'].' '.$array['start_time']); $start_end = strtotime(($start_date['mday']+$array['end_day']).'-'.$start_date['mon'].'-'.$start_date['year'].' '.$array['end_time']); if($start_unix > $start_start && $start_unix < $start_end) { if($end_unix > $start_end) { echo $array['start_time'] . '-' . $array['end_time'] . ' : ' . (($start_end - $start_unix)/3600) . ' Timer<br />'; } else { echo $array['start_time'] . '-' . $array['end_time'] . ' : ' . (($end_unix - $start_unix)/3600) . ' Timer<br />'; } } elseif($start_unix < $start_start && $end_unix > $start_end) { echo $array['start_time'] . '-' . $array['end_time'] . ' : ' . (($end_start - $start_start)/3600) . ' Timer<br />'; } } foreach($interval AS $array) { $end_start = strtotime(($end_date['mday']+$array['start_day']).'-'.$end_date['mon'].'-'.$end_date['year'].' '.$array['start_time']); $end_end = strtotime(($end_date['mday']+$array['end_day']).'-'.$end_date['mon'].'-'.$end_date['year'].' '.$array['end_time']); if($end_unix > $end_start && $end_unix < $end_end) { if($start_unix > $end_start) { echo $array['start_time'] . '-' . $array['end_time'] . ' : ' . (($end_unix - $start_unix)/3600) . ' Timer<br />'; } else { echo $array['start_time'] . '-' . $array['end_time'] . ' : ' . (($end_unix - $end_start)/3600) . ' Timer<br />'; } } elseif($start_unix < $end_start && $end_unix > $end_end) { echo $array['start_time'] . '-' . $array['end_time'] . ' : ' . (($end_end - $end_start)/3600) . ' Timer<br />'; } } ?>
Slettet bruger
19. juni 2007 - 23:48
#10
okay NICE mange tak, men hvordan giver jeg dig point??? jakobdo
20. juni 2007 - 07:15
#11
Svar!
20. juni 2007 - 07:15
#12
Og så acceptere du bare mit svar herover. (eller i bunden) :o)
20. juni 2007 - 08:13
#13
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling