Avatar billede kb5220 Nybegynder
11. juni 2011 - 18:49 Der er 4 kommentarer og
1 løsning

Et problem med meebox !

Hej Eksperter.

Jeg skriver til jer da jeg har lavet et lille php script som skulle kunne beregne om personen har haft fødselsdag hvis person har haft så ville den gå til næste år hvis ikke ville den være ved dette år vi er i indtil dag er kommer men måde det er bygge op på er som en slags reminder som skulle reminde folk om det en uge før.

Men som overskrift siger virker det ikke på Meebox jeg har lavet det på min skole server og der virke det helt fint men når jeg flytte kode over til meebox ville den ikke, den giver mig dette timestamp: 63491990400 som er ud fra denne dato 08-02-1991

Her er min kode:

$dag = "12";
$manede = "06";
$arr = "1991";
<-- Denne del virker -->
if (date("d") <= $dag && date("m") <= $manede){
echo mktime(10,0,0,$manede,$dag - 7,date("Y"));
}
<-- Denne del virker slut -->
else {
$dob = "$dag-$manede-$aar-8";

$dobTime = strtotime($dob);

list(,,$dobyear) = explode('-', $dob);
$years = (date('Y') - $dobyear) + 1;
$dob1WeekBefore = strtotime("+$years year -1 week", $dobTime);

echo $dob1WeekBefore;
}
Avatar billede arne_v Ekspert
12. juni 2011 - 16:05 #1
Den kode ser meget kryptisk ud.

Hvad skal kode goere?

Teste om et givet foedselstidspunkt betyder at personen har hatft foedselsdag indenfor den sidste uge?

Finde naeste foedseldag?
Avatar billede kb5220 Nybegynder
12. juni 2011 - 16:55 #2
Kode skal gøre det at hvis vi siger min fødselsdag er 08-02-1991.

Skal den regne ud om jeg har haft fødselsdag i år hvis jeg ikke har haft det kan den smide et timestamp ud fra det men timestamp skal være en uge før min såkaldt fødselsdag og hvis jeg har haft skal den regne ud til næste år en uge før.

Håber det hjalp
Avatar billede arne_v Ekspert
12. juni 2011 - 17:24 #3
Jeg ville proeve noget a la:

<?php
function next_birtday($dob) {
    $mdob = date('m', $dob);
    $ddob = date('d', $dob);
    $now = time();
    $ynow = date('Y', $now);
    $mnow = date('m', $now);
    $dnow = date('d', $now);
    if($mdob < $mnow || ($mdob == $mnow && $ddob < $dnow)) {
        $y = $ynow + 1;
    } else {
        $y = $ynow;
    }
    return mktime(12, 0, 0, $mdob, $ddob, $y) - 7*24*60*60;   
}

date_default_timezone_set('Europe/Copenhagen');
$dob = strtotime('08-02-1991');
$nbd = next_birtday($dob);
echo date('d-m-Y', $nbd) . "\r\n";
?>
Avatar billede kb5220 Nybegynder
12. juni 2011 - 18:58 #4
Mange tak for dit forsalg det virkede :)

Skrive et svar så du kan få points
Avatar billede arne_v Ekspert
12. juni 2011 - 19:06 #5
svar
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
Kurser inden for grundlæggende programmering

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