Avatar billede blackscorpion Nybegynder
15. juni 2004 - 20:37 Der er 5 kommentarer og
1 løsning

Fejl i AldersScript.

Hej Eksperter.

jeg sidder her med et alders script, som jeg har lavet til min hjemmeside, og den passer fint nok, med min alder.

Men nu skal jeg regne andre aldre ud, og så fejler den, nogle der kan se hvad fejlen er??

<?php

include("admin/config.inc");

//$stop = mktime(17, 0, 0, 10, 25, 2000); // Syntax: Hour, Min, Sec, Month, Day, Year.
$stop = mktime(17, 0, 0, 10, 20, 2000); // Syntax: Hour, Min, Sec, Month, Day, Year.
$nu = time();

$years = date("Y", $nu) - date("Y", $stop);
$months = date("m", $nu) - date("m", $stop);
$days = date("d", $nu) - date("d", $stop);

$hours = date("H", $nu) - date("H", $stop);
$mins = date("i", $nu) - date("i", $stop);
$sec = date("s", $nu) - date("s", $stop);

if ( $months < 0 ) {
    $years -= 1;
    $months += 12;
}

if ( $days < 0 ) {
    $years -= 1;
    $days += date("t",$nu);
}

if ( $hours < 0 ) {
    $days -= 1;
    $hours += 24;
}

if ( $mins < 0 ) {
    $hours -= 1;
    $mins += 60;
}

if ($sec < 0 ) {
    $mins -= 1;
    $sec += 60;
}

if($months == "1") {
$mon_txt = $time_text['2'];
}
else {
$mon_txt = $time_text_more['2'];
}

if($days == "1") {
$day_txt = $time_text['3'];
}
else {
$day_txt = $time_text_more['3'];
}

if($hours == "1") {
$hour_txt = $time_text['4'];
}
else {
$hour_txt = $time_text_more['4'];
}

if($mins == "1") {
$min_txt = $time_text['5'];
}
else {
$min_txt = $time_text_more['5'];
}

if($sec == "1") {
$sec_txt = $time_text['6'];
}
else {
$sec_txt = $time_text_more['6'];
}


$age = "$years " . $time_text_more['1'] . ", $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt";

echo $age;
?>

- BlackScorpion.
Avatar billede blackscorpion Nybegynder
15. juni 2004 - 20:53 #1
noget fra config, som bruges i scriptet.

$months                    = array(1 => 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
$days                      = array(1 => 'Man','Tirs','Ons','Tors','Fre','Lør','Søn');
$time_text                  = array(1 => 'år','måned','dag','time','minut','sekund');
$time_text_more            = array(1 => 'år','måneder','dage','timer','minutter','sekunder');
Avatar billede coderdk Praktikant
16. juni 2004 - 10:29 #2
Ville det ikke være lettere med noget i stil med:

    $diff = time() - mktime(17, 0, 0, 10, 20, 2000);
    echo (date("Y",$diff) - 1970) . " år og " . ((int) strftime("%j",$diff)) . " dage";

:)

Og så er der nogen af tingene du ikke selv behøver at lave, php kender f.eks. måneds- og dagsnavne osv, se:

    setlocale(LC_TIME, "da_DK");
    echo strftime("Det er %A");
Avatar billede blackscorpion Nybegynder
16. juni 2004 - 20:44 #3
hmm hvordan bruger jeg den der setlocale ?? altså konvertere det ind i mit script?
Avatar billede coderdk Praktikant
17. juni 2004 - 01:08 #4
du bruger bare strftime() se http://dk.php.net/strftime - ting som måneder og ugedage er oversat...
Avatar billede blackscorpion Nybegynder
18. juni 2004 - 22:43 #5
okey smid lige et svar, er ret sikker på at jeg kan få det til at virke. ;)
Avatar billede coderdk Praktikant
18. juni 2004 - 22:52 #6
Oki doki :)
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