Avatar billede blackscorpion Nybegynder
06. juli 2002 - 17:47 Der er 58 kommentarer og
1 løsning

Fejl i alders script.

Hej Ekspertbrugere.

Jeg har lavet et alders script, som ved første øjekast så ud til at virke... men har fundet ud af at, den 6. februar, på står den at det er 4 dage siden at jeg havde fødselsdag... og jeg er altså født d. 5.... :(

Nogle der kan se fejlen, eller ved hvor det går galt???

-------------------------------------------------------
$born_time = "342252922";

$real_time = time();

$complete_age = $real_time - $born_time;

$years = date("y",$complete_age) - 70;
$months = date("m", $complete_age) -1;
$days = date("d", $complete_age);

$hours = date("H", $complete_age) -1;
$mins = date("i", $complete_age);
$sec = date("s", $complete_age);

// Måneder.
if($months < 10 AND $months > 0) {
$months = ereg_replace("0","", $months);
}
if($months < 1) {
$months = substr($months, 0, 1);
}
if($months == "1") {
$mon_txt = "måned";
}
else {
$mon_txt = "måneder";
}

// Dage.
if($days < 10 AND $days > 0) {
$days = ereg_replace("0","", $days);
}
if($days == "1") {
$day_txt = "dag";
}
else {
$day_txt = "dage";
}

// Timer.
if($hours < 10 AND $hours > 0) {
$hours = ereg_replace("0","", $hours);
}
if($hours == "1") {
$hour_txt = "time";
}
else {
$hour_txt = "timer";
}

// Minutter
if($mins < 10 AND $mins > 0) {
$mins = ereg_replace("0","", $mins);
}
if($mins == "1") {
$min_txt = "minut";
}
else {
$min_txt = "minutter";
}

// Sekunder.
if($sec < 10 AND $sec > 0) {
$sec = ereg_replace("0","", $sec);
}
if($sec == "1") {
$sec_txt = "sekund";
}
else {
$sec_txt = "sekunder";
}

$age = "$years år, $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt";
-------------------------------------------------------
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 17:49 #1
f.eks. i januar, d. 6. påstår den at det er 2 dage siden... jeg forstår faktisk ikke hvad der går galt...
Avatar billede benny-bomstaerk Nybegynder
06. juli 2002 - 18:02 #2
Prøv at sætte -1 efter $days = date("d", $complete_age);
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:05 #3
har jeg prøvet... så skriver den d. 6 at det er 0 dage siden... :(
Avatar billede muddi Praktikant
06. juli 2002 - 18:05 #4
Jeg kan ikke se fejlen i dit script, men måske kan du bruge dette script til at finde inspiration til en løsning:


function hhe_stop(){
$stop = mktime(16, 30, 0, 6, 17, 2000);
$nu = time();

$siden_aar = date("Y",$nu) - date("Y",$stop);
$siden_dage = date("z",$nu) - date("z",$stop);
if ( $siden_dage < 0 ) {
    $siden_aar -= 1;
    $siden_dage += 365;
}

$siden = "ps. Det er nu " . $siden_aar . " år og " . $siden_dage . " dage siden vi stoppede på skolen!";
return $siden;
}


$siden = "Det er nu " . $siden_aar . " år og " . $siden_dage . " dage siden jeg blev født!";
return $siden;
}
Avatar billede muddi Praktikant
06. juli 2002 - 18:11 #5
Mit script skriver ikke hvor mange timer, minutter og sekunder der er gået, men det kan det nemt komme til... jeg lægger et svar i tilfælde af du kan bruge scriptet!
Avatar billede muddi Praktikant
06. juli 2002 - 18:13 #6
function hhe_stop(){
$stop = mktime(0, 0, 0, 2, 6, 1981);
$nu = time();

$siden_aar = date("Y",$nu) - date("Y",$stop);
$siden_dage = date("z",$nu) - date("z",$stop);
if ( $siden_dage < 0 ) {
    $siden_aar -= 1;
    $siden_dage += 365;
}

$siden = "Det er nu " . $siden_aar . " år og " . $siden_dage . " dage siden jeg havde fødselsdag!";
return $siden;
}

print hhe_stop();
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:20 #7
Kan man ikke omskrive det sådan at den også skriver måneder og realle dage, isetdet for antal dage siden nytår??
Avatar billede muddi Praktikant
06. juli 2002 - 18:23 #8
jo da! alt kan lade sig gøre - næsten *LOL*

2 sek - kigger lige på det :o)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:25 #9
Samme her, har ordnet den med måneder.. og knokler nu med dage. ;)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:27 #10
jeg skal lige efter nogle smøger så kommer jeg igen... der går ca... 20mins. ;)
Avatar billede muddi Praktikant
06. juli 2002 - 18:28 #11
damn... jeg kunne også godt ryge en smøg... har ikke røget i 2 dage!!!
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:31 #12
Sorry.. *GGG* har måtte låne for at kunne få. ;)

*smider 2 pakker cyber smøger til Muddi*
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:52 #13
Så er jeg tilbage, hvad har du fundet ud af muddi??
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 18:59 #14
Damn den med dage, kan jeg sQ ikke hitte ud af. :(
Avatar billede muddi Praktikant
06. juli 2002 - 19:05 #15
øh min storebror kom lige på besøg, så jeg har ikke fundet ud af noget... jeg kan kigge på det når jeg har spist ... er det ok?
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:07 #16
yeps... det begynder bare at irritere mig for vildt, at det var ikke vil som jeg vil... men det virker meget som om at den tror at jeg er født 19:15 istedet for 07:15... :(
Avatar billede muddi Praktikant
06. juli 2002 - 19:10 #17
Jeg har løst problemet nu... jeg lægger lige svaret når jeg har spist :o)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:14 #18
Okey, Tak. ;)
Avatar billede tipsen Nybegynder
06. juli 2002 - 19:27 #19
Følgende giver dags dato fordelt på år, måneder, dage osv - vel at mærke som heltal uden eventuelle foranstillede nuller! Brug disse koder i stedet for alle de ereg_replace() du bruger!

$now_year = (int) date("Y");
$now_month = (int) date("n");
$now_day = (int) date("j");
$now_hour = (int) date("G");
$now_minute = (int) date("i");
$now_second = (int) date("s");
Avatar billede tipsen Nybegynder
06. juli 2002 - 19:29 #20
Og så skal du aldrig bruge ereg_replace() til en simpel substitution - der skal du altid bruge str_replace() - den er beregnet til den type opgaver, hvorimod ereg_replace() er lavet til mere komplekse mønstre af tekst! (Dermed er ereg_replace() også langsommere end str_replace())
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:34 #21
jamen tipsen... hvis den viser dags dato osv... hvad skal jeg så kunne bruge den til??? jeg skal finde ud af hvor gammel præcist jeg er fra 5 novem 1980, klokken 07:15:00 ...
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:34 #22
november even
Avatar billede muddi Praktikant
06. juli 2002 - 19:42 #23
<?php
//function tidsmaskine(){
$stop = mktime(0,0,0,2,24,1983);
$nu = time();

$siden_aar = date("Y",$nu) - date("Y",$stop);
$siden_dage = date("z",$nu) - date("z",$stop);
$siden_timer = date("H",$nu) - date("H",$stop);
$siden_minutter = date("i",$nu) - date("i",$stop);
$siden_sekunder = date("s",$nu) - date("s",$stop);

if ( $siden_dage < 0 ) {
    $siden_aar -= 1;
    $siden_dage += 365;
}

$siden = "Det er nu " . $siden_aar . " år, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!";
print $siden;
}
?>
Avatar billede muddi Praktikant
06. juli 2002 - 19:44 #24
hov, jeg glemte lige det med måneder :o) 2 sek!
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:46 #25
Ja så langt er jeg også nået, pånær tiden... nu er det så at jeg gerne vil have måneder på... altså pt.

8 måneder og 1 dag...

hvis du forstår hvad jeg mener. ?
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:46 #26
eehhh... havde ikke set det var dig muddi. *GGGG*
Avatar billede muddi Praktikant
06. juli 2002 - 19:51 #27
<?php
function tidsmaskine(){
$stop = mktime(0,0,0,2,24,1983);
$nu = time();

$siden_aar = date("Y",$nu) - date("Y",$stop);
$siden_maaneder = date("m",$nu) - date("m",$stop);
$siden_dage = date("d",$nu) - date("d",$stop);
$siden_timer = date("H",$nu) - date("H",$stop);
$siden_minutter = date("i",$nu) - date("i",$stop);
$siden_sekunder = date("s",$nu) - date("s",$stop);

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

$siden = "Det er nu " . $siden_aar . " år, ".$siden_maaneder." måneder, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!";
print $siden;
}
?>
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:52 #28
Muddi... prøv at smide dette ind.

$stop = mktime(7, 15, 0, 11, 5, 1980);

istedet for din egen. ;)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:53 #29
never mind den er løst. ;)
Avatar billede muddi Praktikant
06. juli 2002 - 19:56 #30
hvordan løste du den?
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:58 #31
Sådan her ser Resultatet ud. ;)

----------------------------------------------------------
$stop = mktime(7, 15, 0, 11, 5, 1980);
$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 ( $days < 0 ) {
    $years -= 1;
    $days += date("t",$nu);
}


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

if($months == "1") {
$mon_txt = "måned";
}
else {
$mon_txt = "måneder";
}

if($days == "1") {
$day_txt = "dag";
}
else {
$day_txt = "dage";
}

if($hours == "1") {
$hour_txt = "time";
}
else {
$hour_txt = "timer";
}

if($mins == "1") {
$min_txt = "minut";
}
else {
$min_txt = "minutter";
}

if($sec == "1") {
$sec_txt = "sekund";
}
else {
$sec_txt = "sekunder";
}

$age = "$years år, $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt";
print $age;
-----------------------------------------------------------------
Avatar billede muddi Praktikant
06. juli 2002 - 19:58 #32
Vil du ikke lige se om det her virker?


function tidsmaskine(){
$stop = mktime(7, 15, 0, 11, 5, 1980);
$nu = time();

$siden_aar = date("Y",$nu) - date("Y",$stop);
$siden_maaneder = date("m",$nu) - date("m",$stop);
$siden_dage = date("d",$nu) - date("d",$stop);
$siden_timer = date("H",$nu) - date("H",$stop);
$siden_minutter = date("i",$nu) - date("i",$stop);
$siden_sekunder = date("s",$nu) - date("s",$stop);

if ( $siden_maaneder < 0 ) {
    $siden_aar -= 1;
    $siden_maaneder += 12;
}

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

$siden = "Det er nu " . $siden_aar . " år, ".$siden_maaneder." måneder, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!";
return $siden;
}
print tidsmaskine();
?>
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 19:59 #33
Og så er den endda gjort pæn. ;)

Hvade jo løst den med månederne. ;)

Sååå det var jo bare at kopi/paste *GGGG*
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:00 #34
Det gør det. ;)
Avatar billede muddi Praktikant
06. juli 2002 - 20:00 #35
Ok, er da glad for at du kunne bruge noget af min kode :o)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:00 #36
FÅRK!
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:01 #37
damn nu skriver den -15 mins...

http://62.79.1.29/BlackScorpion/test.php
Avatar billede muddi Praktikant
06. juli 2002 - 20:01 #38
ok... det gik galt eller hvad?
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:02 #39
yeps...
Avatar billede muddi Praktikant
06. juli 2002 - 20:04 #40
Det virker her:


<?php
function tidsmaskine(){
$stop = mktime(7, 15, 0, 11, 5, 1980);
$nu = time();

$siden_aar = date("Y",$nu) - date("Y",$stop);
$siden_maaneder = date("m",$nu) - date("m",$stop);
$siden_dage = date("d",$nu) - date("d",$stop);
$siden_timer = date("H",$nu) - date("H",$stop);
$siden_minutter = date("i",$nu) - date("i",$stop);
$siden_sekunder = date("s",$nu) - date("s",$stop);

if ( $siden_maaneder < 0 ) {
    $siden_aar -= 1;
    $siden_maaneder += 12;
}

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

if ( $siden_timer < 0 ) {
    $siden_dage -= 1;
    $siden_timer += 24;
}

if ( $siden_minutter < 0 ) {
    $siden_timer -= 1;
    $siden_minutter += 60;
}

if ( $siden_sekunder < 0 ) {
    $siden_minutter -= 1;
    $siden_sekunder += 60;
}

$siden = "Det er nu " . $siden_aar . " år, ".$siden_maaneder." måneder, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!";
return $siden;
}
print tidsmaskine();
?>
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:05 #41
hehe har fundet problemet. ;)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:05 #42
nemlig, også det jeg fandt ud af. ;)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:08 #43
<?

$stop = mktime(7, 15, 0, 11, 5, 1980);
$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 = "måned";
}
else {
$mon_txt = "måneder";
}

if($days == "1") {
$day_txt = "dag";
}
else {
$day_txt = "dage";
}

if($hours == "1") {
$hour_txt = "time";
}
else {
$hour_txt = "timer";
}

if($mins == "1") {
$min_txt = "minut";
}
else {
$min_txt = "minutter";
}

if($sec == "1") {
$sec_txt = "sekund";
}
else {
$sec_txt = "sekunder";
}

$age = "$years år, $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt";

echo $age;

?>
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:09 #44
Sådan her skal den se ud. ;)

Muddi du er genial. ;)

Du har sQ fortjent de 60 point. ;)

Og MANGE Tak for hjælpen. ;) *H5*

- TheSpeaker.
Avatar billede muddi Praktikant
06. juli 2002 - 20:10 #45
Det var jo sjovt nok - lærte også lidt selv ...

Happy Coding :)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:11 #46
You too my friend. ;)
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:12 #47
Men Muddi... det er med 100% garenti ikke sidste gang du ser mig. *GGG* ;)
Avatar billede muddi Praktikant
06. juli 2002 - 20:14 #48
E 4ever ! Tak for point!
Avatar billede tipsen Nybegynder
06. juli 2002 - 20:15 #49
Ovennævnte fungerer ikke - prøv eks:

$stop = mktime(7, 15, 0, 11, 5, 1980);
$nu = mktime(7, 15, 0, 10, 4, 2002);
Avatar billede tipsen Nybegynder
06. juli 2002 - 20:16 #50
...og efter hvad jeg lige kan gennemskue, bliver den også svær at lappe på...
Avatar billede tipsen Nybegynder
06. juli 2002 - 20:21 #51
Hvis I prøver at lappe den - så prøv samtidig nedenstående:

$stop = mktime(1, 1, 1, 1, 1, 1980);
$nu = mktime(0, 0, 0, 1, 1, 2002);

-skulle gerne give lige knap 22 år!
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:21 #52
hmmm skummelt... *GGG*

har lige prøvet at slå tiden over til 4 oktober.. der virker det fint??
Avatar billede tipsen Nybegynder
06. juli 2002 - 20:22 #53
dvs. personen er 21 år?
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:23 #54
tipsen -> hvad er chancen for at der kommer nogle ind på slaget 0:0:0 nytårs aften???
Avatar billede tipsen Nybegynder
06. juli 2002 - 20:28 #55
Jeg giver bare eksempler på hvornår det kikser - og den type eksempler kan jeg give for hele året - hver eneste dag...
Avatar billede tipsen Nybegynder
06. juli 2002 - 20:29 #56
men hvis du er tilfreds med scriptet, så beholder du det da bare som det er!
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 20:36 #57
Jamen tipsen.. istedet for at rakke det ned, hvad så med at hjælpe?? Du har fundet en fejl, hvad så med at prøve at rette det?? Er det ikke derfor at Eksperten er her??

- TheSpeaker.

ps. kan godt oprette et nyt spørgsmål, hvis det er pointne du er bange for ikke at få.
Avatar billede tipsen Nybegynder
06. juli 2002 - 21:24 #58
Jeg ville gerne rette det, men som jeg skrev ovenfor mener jeg ikke umiddelbart at det kan lappes (hvertfald ikke at jeg kan finde ud af at rette det!) og jeg har lidt dårlig tid til at sætte mig ned og lave et helt nyt script, så derfor tænkte jeg at jeg kunne give nogle eksempler på, hvor det fejlede - og så ville du nok kunne gennemskue, hvorfor det fejlede!
Avatar billede blackscorpion Nybegynder
06. juli 2002 - 21:32 #59
Jamen det er også fair nok, men du må meget gerne lave et nyt script når du engang får tid til det, jeg klarer mig nok med det her indtil videre hvis der er så mange fejl i, som du mener der er. ;) *G*

- TheSpeaker.
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