Telle antall dager med PHP

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009

I databasen har jeg registrert datoen når hvert enkelt medlem ble registrert. (member_date)

  • Målet er å telle antall dager den aktuelle medlemmen har vert medlem.

Jeg bruker denne "formelen":

<?php
$MemberDaysAgo
= (strtotime($data["member_date"]) - strtotime(date("y/m/d"))) / (60 * 60 * 24);
?>

Jeg trur det skal være riktig svar, men jeg får ett - (minus)-tegn forran... Det kunne jeg godt ha klar meg uten.

Setningen blir "... for ca -100 dager siden...".

Noen tips til hva jeg kan gjøre der for å slippe det minus tegnet?

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Matematikk er moro

Hvis du tenker deg at universet starter på 0 sekunder idet en bruker registrerer seg, og så skal du vise hvor mange sekunder det er siden universet startet 5 sekunder etterpå, ville du da tatt:

0 - 5 = -5, eller 5 - 0 = 5 ?

PS: Unødvendig å utføre aritmetikk i telleren også, bare skriv 86400, det er antallet sekunder i et døgn.

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
Ahhh... tenkte faktisk ikke

Ahhh... tenkte faktisk ikke på den der... hehee... jaja, men da funket det smell vettu... mange takk...

Kommer tilbake til mer matte tipper jeg på når jeg går i gang med statestikk beregningene for medlemene...

med hilsen
Thomas Kile

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
Jeg trenger å finne en gitt

Jeg trenger å finne en gitt dato frem i tid samt beregne differansen i ant. dager, uker, mnd. og år mellom dem.

Dette for å beregne 2 ting for medlemmene.

#1 - Hvor lenge har vedkommende vert medlem

#2 - Hvor lenge er det igjen av en prosess

 

Eneste kjente verdi er når bruker ble medlem.

Så jeg trenger først en funksjon som finner en dato, en gitt tid fremover (eks. 6mnd, 2 år, 5 år) samt fastsette disse datoene som start og stopp.

Så trenger jeg en funksjon som beregner "avstanden" mellom disse. (denne har jeg da).

Forsøkte meg litt frem med strtorime og mktime men fikk det ikke helt til...

Kunne du fortellt litt om hvordan dette løses?

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Regne ut differanse mellom to datoer

For å vite differansen mellom to ting må selvsagt begge tingene være kjent, mao. start og stopp. La oss ta utgangspunkt i et abonnement. Idet en person betaler for A, så lagres kjøps- og utløpsdatoen for A f.eks. ett år frem i tid.

Du kan så gjøre om stoppdatoen til sekunder siden 01.01.1970, se funksjonen time() i PHP, i MySQL se UNIX_TIMESAMP. Dermed har du grunnlag nok til å beregne differansen fra start til stopp i sekunder.

Videre må du skrive en funksjon som deler opp tiden i måneder, uker og dager. Selv liker jeg å gjøre det mindre avansert. Jeg lagrer utløpsdatoen, og kan strekke meg til å vise antallet dager igjen. Det å dele opp ting i måneder, uker osv ser jeg ingen hensikt med, da folk flest har et godt begrep om tid. Det er også pes mht. antall dager i en mnd og unntakstilfellet i skuddår.

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
så du anbefaler og forhlde

så du anbefaler og forholde seg til dager da altså?

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Dager igjen

Ja, jeg gjør det. De fleste har jo et begrep om hvor lenge f.eks 120 eller 240 dager er. Ved å stykke det opp i måneder, uker og dager vil du få en lang string, type: "Det er 1 år, 3 måneder, 2 uker og 4 dager igjen til abonnementet ditt løper ut". Da synes jeg det er mye bedre å bare vise "Det er x dager igjen", synes ikke du da?

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
tenkte ikke at det skulle

tenkte ikke at det skulle være så detaljert... tenkte mer at det skulle være en av dem om gangen.

I tekst sammenheng: Du har vert medlem i ca. 119 uker. På tide å gå til neste nivå.

Statestikk: Du har vert medlem i hele 833 dager.

Statestikk er artig å se store tall... Isteden for bare ca. 2 år

 

 

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Dager, så uker

Jepp, er moro å se store tall på statistikk, så her ville jeg gått for uker når det blir så lange tidsintervaller. Folk flest deler bare tallet på 50 for å få antall år de har vært med, og dermed har de forståelse for tallet.

Regn ut dager det første året og hvis det er over 365 så deler du bare på 7, runder av og viser antall uker i steden. :)

Svar på forumemnet

(If you're a human, don't change the following field)
Your first name.
Innholdet i dette feltet blir holdt privat og vil ikke bli vist offentlig.