Avatar billede michaeljuul Nybegynder
29. august 2008 - 10:19 Der er 27 kommentarer og
3 løsninger

Hvorlang tid siden?

Jeg skal starte en ny hjemmeside op.
Og kunne godt tænke mig, at der i bunden på forsiden står.
(siden har være igang i x år x dage x timer x minutter.)

F.eks.
siden har været igang i 1 år 257 timer 6 minutter.

Nogle som kan hjælpe med det?
Avatar billede michaeljuul Nybegynder
29. august 2008 - 10:45 #1
Hov

Der skulle stå. F.eks.
siden har været igang i 1 år 257 dage 9 timer 6 minutter.
Avatar billede jakobdo Ekspert
29. august 2008 - 10:47 #2
Kig på koden her:

<?php
//http://www.eksperten.dk/spm/843480

//Santosh Patnaik 01-Jun-2008 05:06 http://dk.php.net/time
function FormatTimeDiff($t1, $t2=null, $format='yfwdhms'){
    $t2 = $t2 === null ? time() : $t2;
    $s = abs($t2 - $t1);
    $sign = $t2 > $t1 ? 1 : -1;
    $out = array();
    $left = $s;
    $format = array_unique(str_split(preg_replace('`[^yfwdhms]`', '', strtolower($format))));
    $format_count = count($format);
    $a = array('y'=>31556926, 'f'=>2629744, 'w'=>604800, 'd'=>86400, 'h'=>3600, 'm'=>60, 's'=>1);
    $i = 0;
    foreach($a as $k=>$v){
        if(in_array($k, $format)){
            ++$i;
            if($i != $format_count){
                $out[$k] = $sign * (int)($left / $v);
                $left = $left % $v;
            }else{
            $out[$k] = $sign * ($left / $v);
          }
      }else{
          $out[$k] = 0;
      }
    }
    return $out;
}

$start = '2005-01-02 18:20:12';
$start = strtotime($start);
$today = time();

echo '<pre>';
echo print_r(FormatTimeDiff($start,$today));
echo '</pre>';

echo 'Siden har været i gang i: ';

?>
Avatar billede jakobdo Ekspert
29. august 2008 - 10:56 #3
Avatar billede jakobdo Ekspert
29. august 2008 - 10:57 #4
Dog tror jeg der er lidt fejl i funktionen.
Skudår ?
28, 29, 30 , 31 dage i en måned ?
Avatar billede michaeljuul Nybegynder
29. august 2008 - 12:21 #5
Jeg har nu afprøvet koden.
Normal skal siden se ud sådan her. http://www.duerher.dk/nick/index.php

Efter jeg har sat koden ind mellem teksten Testsiden og det billede der er.
Så ser den sådan ud. http://www.duerher.dk/nick/index2.php

Jeg har brugt denne kode herunder.

<?php
//http://www.eksperten.dk/spm/843480

//Santosh Patnaik 01-Jun-2008 05:06 http://dk.php.net/time
function FormatTimeDiff($t1, $t2=null, $format='yfwdhms'){
    $t2 = $t2 === null ? time() : $t2;
    $s = abs($t2 - $t1);
    $sign = $t2 > $t1 ? 1 : -1;
    $out = array();
    $left = $s;
    $format = array_unique(str_split(preg_replace('`[^yfwdhms]`', '', strtolower($format))));
    $format_count = count($format);
    $a = array('y'=>31556926, 'f'=>2629744, 'w'=>604800, 'd'=>86400, 'h'=>3600, 'm'=>60, 's'=>1);
    $i = 0;
    foreach($a as $k=>$v){
        if(in_array($k, $format)){
            ++$i;
            if($i != $format_count){
                $out[$k] = $sign * (int)($left / $v);
                $left = $left % $v;
            }else{
            $out[$k] = $sign * ($left / $v);
          }
      }else{
          $out[$k] = 0;
      }
    }
    return $out;
}

$start = '2005-01-02 18:20:12';
$start = strtotime($start);
$today = time();

echo '<pre>';
echo print_r(FormatTimeDiff($start,$today));
echo '</pre>';

echo 'Siden har været i gang i: ';

?>
Avatar billede jakobdo Ekspert
29. august 2008 - 12:25 #6
Virker koden hvis du tester den alene ?
Avatar billede michaeljuul Nybegynder
29. august 2008 - 12:30 #7
Nej jeg kan ikke få den til det.
Avatar billede jakobdo Ekspert
29. august 2008 - 12:41 #8
Prøv at tag koden herfra: http://www.codebreaker.dk/exp/843480exp.php
Har nogle gange oplevet at eksperten fjerner tegn i en kode.
Avatar billede michaeljuul Nybegynder
29. august 2008 - 12:54 #9
Tak. Men det hjalp heller ikke.
Avatar billede michaeljuul Nybegynder
29. august 2008 - 13:00 #10
Jeg kan godt du har det i toppen af den side http://www.codebreaker.dk/exp/843480exp.php
Siden har været i gang i: 3 år 4 dage 22 timer 34 minutter

Men det er jo bare en tekst. Og ikke noget som opdatere sig selv.
Avatar billede jakobdo Ekspert
29. august 2008 - 13:04 #11
Det er ikke tekst... :o)

Siden har været i gang i: 3 år 4 dage 22 timer 51 minutter
Avatar billede michaeljuul Nybegynder
29. august 2008 - 13:13 #12
Okay. Kunne du ikke ligge den php du bruger op et sted, så jeg kan hente den?
Avatar billede jakobdo Ekspert
29. august 2008 - 13:20 #13
Avatar billede michaeljuul Nybegynder
29. august 2008 - 13:44 #14
Har prøvet øg ligge din fil ind i min index.php fil. Ved og bruge
<?php include ("843480exp.php"); ?>
Filerne ligger i samme Dir.
Men nu ser den sådan ud http://www.duerher.dk/nick/index2.php

Har også prøvet og ligge kode fra http://www.codebreaker.dk/exp/843480exp.phps ind. Og så ser den sådan ud http://www.duerher.dk/nick/index3.php
Avatar billede jakobdo Ekspert
29. august 2008 - 13:55 #15
Kontakt mig på msn: jakobdo (at) hotmail [punktum] com
Avatar billede michaeljuul Nybegynder
29. august 2008 - 14:05 #16
Har skrevet til dig på MSN nu
Avatar billede michaeljuul Nybegynder
29. august 2008 - 16:50 #17
Fandt en anden kode. Og den kan ses på siden.
Kan den laves om til og vise hvormange
x år x dage x timer x minutter.
der er gåer siden en dato?

<?php

function formatetimestamp($until){

  $now = time();
  $difference = $until - $now;

  $days = floor($difference/86400);
  $difference = $difference - ($days*86400);

  $hours = floor($difference/3600);
  $difference = $difference - ($hours*3600);

  $minutes = floor($difference/60);
  $difference = $difference - ($minutes*60);

  $seconds = $difference;
  $output = "You have to wait $days Days, $hours Hours, $minutes Minutes and $seconds Seconds until this Day.";

  return $output;

}

//int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

echo formatetimestamp(mktime(0,0,0,12,31,2006)); //output: e.g "You have to wait 162 Days, 4 Hours, 38 Minutes and 46 Seconds until this Day"

?>
Avatar billede michaeljuul Nybegynder
29. august 2008 - 16:52 #18
Avatar billede wanze Nybegynder
29. august 2008 - 19:25 #19
<?php

function igang() {
  $tid = time()-1209230070;
  $enheder = array('år'=>31556926, 'måneder'=>2629744, 'uger'=>604800, 'dage'=>86400, 'timer'=>3600, 'minutter'=>60);
  foreach($enheder as $enhed => $sekunder) {
    if(floor($tid/$sekunder) > 0) {
      $output .= ' '.floor($tid/$sekunder).' '.$enhed;
      $tid -= $sekunder*floor($tid/$sekunder);
    }
  }
  return $output;
}

print "Siden har kørt i".igang();

?>

1209230070 er unixtid for, hvornår siden blev startet. 1209230070 svarer til den 26. april 2008 , kl. 19:14:30. I skrivende stund vil ovenstående derfor returnere:
  Siden har kørt i 4 måneder 3 dage 6 timer 13 minutter

Du kan finde den nuværende unixtid med time(). Dvs. når du starter din side, så laver du et tekstdokument, der udskriver time(); og indsætter resultatet på 1209230070's plads i koden.
Avatar billede jakobdo Ekspert
29. august 2008 - 22:22 #20
Ang. msn, skriv lige igen! :o)
Avatar billede michaeljuul Nybegynder
30. august 2008 - 02:12 #21
Er lige kommet hjem.
Kigger på din kode imorgen eftermiddag wanze.

Og Jakobdo skriver til dig på msn imorgen eftermiddag.

Godnat
Avatar billede michaeljuul Nybegynder
30. august 2008 - 10:28 #22
Wanze.

Jeg har prøvet din kode på http://www.duerher.dk/nick/index2.php og det virker fint.
Men hvordan laver jeg det tekstdokument, der udskriver time ?
Avatar billede jakobdo Ekspert
30. august 2008 - 10:37 #23
<?php
echo time();
?>

Og den tid, skal du så indsætte på linjen: $tid = time()-1209230070;
Avatar billede michaeljuul Nybegynder
30. august 2008 - 17:18 #24
Det virkede jakobdo :-)
Kan man dele point mellem jer? I har begge hjulpet.

Eller hvem skal have dem?
Avatar billede wanze Nybegynder
30. august 2008 - 17:30 #25
Det kan du sagtens, når vi begge har smidt et svar, så kan du vist vælge at give os begge point - jeg er ikke helt sikker på proceduren, adskillige år siden jeg har stillet et spørgsmål. ;-)
Avatar billede jakobdo Ekspert
30. august 2008 - 21:35 #26
Svar!
Avatar billede michaeljuul Nybegynder
31. august 2008 - 02:20 #27
Tak skal i have :-)
Avatar billede jakobdo Ekspert
31. august 2008 - 07:46 #28
Takker for point.
Avatar billede ceetara Nybegynder
03. september 2008 - 00:25 #29
Hej jakobdo

har brug for lidt hjælp til min hjemmeside hvor jeg har problemer med opload af billeder. er det noget du kunne hjælpe med... mod betaling.
Avatar billede ceetara Nybegynder
03. september 2008 - 00:26 #30
kan kontakes på king@mail.dk
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