Gå til innhold

script som sier hvor mange dager siden x dato


Anbefalte innlegg

SPM#1

Hvordan gjør jeg det?

Og at jeg kan bestemme hva som skal stå før og etter tallet, feks for <dager> siden, eller "nå er det hele <dager> siden jeg oppdaterte sist".

 

SPM#2

Hvordan kan jeg lage et script som printer hvor lenge det er siden jeg oppdaterte siden? Siden den filen scriptet er på sist ble lagret eller updatert på serveren?

 

På forhånd takk :)

Lenke til kommentar
Videoannonse
Annonse

1# fra php.net

function getmyage() {
  $bday = gmmktime(14,29,0,9,23,1981)+(60*60*5);
  //The '+mktime(0,0,0,1,1,1970)' will add the local server's GMT offset to the time.
  //This will convert the server's current local time to GMT.
  //This is needed because $bday is calculated for a specific time zone (Central w/ DST:  GMT-05:00)
  $dif = (time() + mktime(0,0,0,1,1,1970)) - $bday;
  $dif = getdate($dif);
  //Since mktime calculates the time from the Unix Epoch (January 1 1970 00:00:00 GMT), subtract 1970 from the year value.
  return ($dif['year'] - 1970);
}

 

2# surret sammen i full fart

function modified($file){
if(file_exist($file){
 return date("Y-m-d", filemtime($file));
}else{
 return "File not found";
}
}

Lenke til kommentar

takker :) brukte en annen kode

$filename = 'main.php';
if (file_exists($filename)) {
  echo date("F d",filemtime($filename));
  echo "<sup>th</sup>";
}

 

men vet noen svaret på spm # 1 ??

Hvis jeg feks skriver at $time = "144", også vil jeg (ved bruk av date("dn")) printe ut hvor mange dager det er siden. Nå har jeg skrevet en handling for hvert tilfelle, som er veldig tungvindt:

if (date("dn") == "124") {
echo "today";
} elseif (date("dn") =="134") {
echo "yesterday";
} elseif (date("dn") =="144") {
echo "for 2 days ago";
} elseif (date("dn") =="154") {
echo "for 3 days ago";
} elseif (date("dn") =="164") {
echo "for 4 days ago";
} elseif (date("dn") =="174") {
echo "for 5 days ago";
} elseif (date("dn") =="184") {
echo "for 6 days ago";
} elseif (date("dn") =="194") {
echo "for a week ago";
} else {
echo "on April 12th";
}

 

Hvordan kan jeg gjøre dette enklere?

Lenke til kommentar

Hvis du skal finne datodifferansen flere ganger, ville jeg gjort noe slik:

 


<?php

// Lager en funskjon for å finne differansen
// $dag = den dagen du sjekker mot...
// $return = antall dager

function antallDager($dag){
// Lager timestamp av dagen i dag
$array = explode(".", $dag);

$timestamp= mktime(0,0,0,$array[1],$array[0],$array[2]);

// regner ut differansen
$diff = mktime() - $timestamp;

// Deler på 3600 for å få timer....
$ant = round($diff/86400);

return $ant;
}

// Eksempel på bruk
$time = "14.04.2005";

echo'Det er nå ' . antallDager($time) . ' dager siden jeg gjorde noe.';

?>

 

 

Her trenger du en dato på formatet "dag.mnd.år". så kaller du funksjonen antallDager(); og du får returnert antall dager fra i den dagen du skreiv inn til i dag. Den koden over er vel mer tungvindt enn nødvendig, men det var no sånn det ble i natt :) timestamp er veldig kjekt ved regning på tid. tror det skal være å bare klippe ut koden og teste, tror den kjører som den er. runder forresten av oppover til nærmeste dag.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...