Avatar billede apromis Praktikant
07. august 2010 - 13:10 Der er 6 kommentarer og
1 løsning

mktime 23:00:00 om 7 dage.

Hej allesammen.

Skal bruge en mktime på klokken 23:00:00 om syv dage.
Men mit problem er at hvis den skiller over en måned. Jeg kan nemlig ikke bare ligge 7 til dage.

HAr i en funktion i gemmerne som kan klare denne ?
Avatar billede kokkens Nybegynder
07. august 2010 - 14:07 #1
echo date("M-d-Y",mktime(23,00,00,8,14,2010));

så bruger du bare mktime så har du tiden i unix :)

håber det var det du skulle bruge :)
Avatar billede olsensweb.dk Ekspert
07. august 2010 - 14:07 #2
har ikke noget i gemmerne men jeg ville gøre sådan, hvis du vil have det i en seperat function :
<?php
// define ("ONEHOUR", 3600);  // (60*60)
define ("ONEDAY", 86400);  // (60*60*24)
// define ("ONEWEEK", 604800); // (60*60*24*7)

// http://php.net/manual/en/function.date.php
// http://php.net/manual/en/function.mktime.php

function addday($reftime, $numberofdays){
    return $reftime+($numberofdays*ONEDAY);
}
$ref = mktime(23, 0, 0, 07, 31, 2010);
$newtime = addday($ref, 7);
echo date("d-M-Y k\l G:i:s", $newtime); // 07-Aug-2010 kl 23:00:00
?>

ellers kom lige med et eks der fejler
Avatar billede apromis Praktikant
08. august 2010 - 01:06 #3
Hej ronols.

Din kode virker perfekt !
Dog vil jeg gerne have den dynamisk. Altså den skal tage dags dato og plusse 7 dage, men det skal være 23:00 på den dag. Forstår du ?

Kokkens --> Den skulle være dynamisk hvorfor din er afvist.
Avatar billede apromis Praktikant
08. august 2010 - 01:10 #4
Selvfølgelig sådan her :
$ref = mktime(23, 0, 0, date("n"), date("j"), date("y"));
$newtime = addday($ref, 7);

Svar og pointsne er dine :)
Avatar billede olsensweb.dk Ekspert
08. august 2010 - 03:14 #5
svar
mktime(23, 0, 0, 07, 31, 2010); var valgt ud fra "problem" med månedsskifte, ellers havde jeg valgt denne løsning mktime(23, 0, 0, date("m"), date("d"), date("y"));
Avatar billede showsource Seniormester
08. august 2010 - 07:11 #6
Der er også strtotime()

$tid = strtotime(date("Y-m-d", strtotime("+ 7 days")))+82800;

echo date("d/m Y H:i:s", $tid);

De 82800 er 11 timer i sekunder.
Avatar billede olsensweb.dk Ekspert
08. august 2010 - 09:31 #7
dette er også en mulighed,
#6 det var også en mulighed, det virker, så er det bare hvad man syntes er nemmest at forstå, evt hurtigst.

<?php
define ("ONEWEEK", 604800); // (60*60*24*7)
function addoneweeekat2300(){
// return mktime(23, 0, 0, date("m"), date("d")+7, date("y"));
return mktime(23, 0, 0, date("m"), date("d"), date("y"))+ONEWEEK;
}

$newtime = addoneweeekat2300();
echo date("d-M-Y k\l G:i:s", $newtime);
?>
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