Top
Phpuniverset logo
 

INDHOLD

Forside

Script libary

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

PHP bog shop

Forum

Online udviklere


ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Forside Forum PHP, mysql Dato - tidsberegning

Dato - tidsberegning


 

Dato - tidsberegning

knudoboy  

Findes der en php funktion, der kan returnere det antal påbegyndte timer, der er mellem to
tidspunkter? 
Altså 10:00:00 - 08:45:00 skal være lig 02:00:00.
Man kan subtrahere Datetime felter i sql, men kan man også i php? 
Tak for svaret



Dato : 15.05.2007, 07:05

Visninger : 2202

Points : 20

 

Dette er forsøgt med manglende success.Det returnerer e time for meget og sætter man ceil(
foran, går det hlet grassat. Oprundingen virker ikke.

(date('H:i:s',strtotime($row_bookings['bkend'])-strtotime($row_bookings['bkstart'])))

Knud


Dato : 15.05.2007, 07:27

Kommentar af : knudoboy  

 

I selecten skrev jeg dette, så kommer den rigtige tidsforskel ud, og så må jeg fifle med
noget substring eller hvad for at få de påbegyndte timer...

select timediff( `bkend` , `bkstart` ) AS duration from etc


Dato : 15.05.2007, 09:17

Kommentar af : knudoboy  

 

<?php
/*
*$date og $date2 er de to datoer du vil finde tiden mellem
*$pre er hvor præcist  du vil ha det 60*60 = 3600 som er en time  30 = et halvt minut
*$round er om du vil runde op eller ned sættes med ’up’ eller ’down’
*/

function td($date$date2$pre 1$round 'up'){
    
$start min(strtotime($date2), strtotime($date));
    
$stop max(strtotime($date2), strtotime($date));

    if(
$round == 'up')$seconds = ($stop $start)+$pre-1;
    else if(
$round == 'down')$seconds = ($stop $start);

    
$seconds -= ($seconds%$pre);
    
$day floor($seconds/(24*60*60));
    
$seconds -= $day*24*60*60;
    
$hour floor($seconds/(60*60));
    
$seconds -= $hour*60*60;
    
$minutes floor($seconds/60);
    
$seconds -= $minutes*60;
    if(
$hour<=9)$hour "0$hour";
    if(
$minutes<=9)$minutes "0$minutes";
    if(
$seconds<=9)$seconds "0$seconds";
    (
$day>0)?$day "Der er$day dag(e)" $day '';
    return (
"$day $hour:$minutes:$seconds  mellem de to datoer");
}

print 
td('2007-05-27 10:00:00''2007-05-27 08:45:00'60*60'up').'<br />';
print 
td('2004-05-27 00:00:00''2007-05-27 21:34:01'60'down');

?>


Dato : 15.05.2007, 15:37

Kommentar af : MP  

 

Hvis du har skrevet alt dette kode bare for at hjælpe mig, skylder jeg dig stor tak og en
eventuel flødekage.
Og når det er SÅ indviklet, er det jo ikke så mærkeligt, at jeg ikke kan finde ud af det.
Muligvis har jeg et lille job til dig, hvis du er interesseret. Det er en side, der
beregner betaling for arbejde efter regler om forskudttid, grundløn, timeløn overtid
etc...
Er du interesseret i dette?
Knud
knud@haugmark.dk


Dato : 15.05.2007, 20:26

Kommentar af : knudoboy  




Login for at skrive et indlæg :



   Brugernavn

Password
 

+ Opret en ny Bruger, Klik her

+ Glemt brugernavn/password

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

© Copyright 2000 Propelcom Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk

Bund