Avatar billede heyn Nybegynder
23. januar 2006 - 13:44 Der er 1 kommentar og
1 løsning

Tilpasse tid til nærmeste kvarter.

Hej Alle

Jeg har et script der enten modtager en dato på formen:
$start = "2006-01-24 15:30:00" el.
$start = "0000-00-00 00:00:00"
Hvis $start != "0000-00-00 00:00:00" vil minuterne altid have værdien 00, 15, 30 el. 45 og sekunder er altid 00.
Hvis $start == "0000-00-00 00:00:00" skal $start være
$start = date(Y-m-d H:i:s) men dog således at minutterne er afrundet ned til nærmeste kvarter.
Det vil f.eks sige at hvis $start == "0000-00-00 00:00:00" og
$start = date(Y-m-d H:i:s) => $start == "2006-01-23 13:40:00" skal $start forandres til $start == "2006-01-23 13:30:00".

Kan nogen klare den?
Mvh Christian
Avatar billede heyn Nybegynder
23. januar 2006 - 16:06 #1
En ven har vist mig løsningen. Her er den:

if ($start == "0000-00-00 00:00:00"){
    $substart = floor(substr(date("Y-m-d H:i:s"),14,2)/15)*15;
    if ($substart == 0) $substart = "00";
    $start = date("Y-m-d H:").$substart.":00";
}

Mvh hristian
Avatar billede tjp Mester
23. januar 2006 - 16:10 #2
Øv, jeg blev lige færdig. ;-)

Ikke testet:

$start = date(Y-m-d H:i:s, mktime(date("H"), foo(date("i")), date("s"), date("m"), date("d"), date("Y"));


function foo($s)
{
if ($s >= 45) {
    $s = "45";
} elseif ($s >= 30) {
    $s = "30";
} elseif ($s >= 15) {
    $s = "15";
} elseif ($s >= 0) {
    $s = "00";
}

return $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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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