Hvis dato er overskredet udskriv tekst

Tags:    php

Jeg har denne funktion til at skrive ca. tid.dage.uger.måneder.år.årtider.

Men kan det rettes så hvis d.03/07/2012 09:56 er i fortiden.
Forny dit medlemskab.

Nu skriver den: Ca. 12 timer siden.

Men kunne være bedre med "Forny dit medlemskab."

Kun i fortiden. I fremtiden: Ca. 1 måned tilbage. :)

Fold kodeboks ind/udPHP kode 




6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
har du prøvet

Fold kodeboks ind/udPHP kode 




Det skal selvfølgelig være time() i stedet for now() - min fejl.

Men logikken i
Fold kodeboks ind/udPHP kode 

er helt forskellig fra det jeg foreslog
Fold kodeboks ind/udPHP kode 


Hvis ikke du forstår logikken, kan du ikke lave det. Måske ville det være en god ide først at beskrive processen trinvis i pseudokode.





Tak, den del virkede da.

Men hvad vil du gøre for at give eller tjekke om "endperiode" er mere 3 dage eller mere, gamle.

Hvis mere end 2, altså 2 dage og 23 timer og 59 og 59 sek.

Når den når til 3 dage, så skal cronjob fjerne perioden helt.

Ved bare ikke lige hvordan jeg skal få den til at tjekke om der er gået 3 dage.

$date = date("d-m-Y");
if($vis["endperiode"] == $date):



Når du bruger UNIX time format er det vel ret simpelt, da den tæller sekunder.

3 dage er præcis 3*24*60*60 sekunder, så

if(($tid+3*24*60*60) < now()) echo "$tid er mere end 3 dage gammel!"

Eller noget i den stil, jeg har ikke testet det.



Mener du: if(($vis[endperiode]+3*24*60*60) < now()) echo "$tid er mere end 3 dage gammel!";


Fatal error: Call to undefined function now() in

-
Har prøvet det her. Og satte endperiode til d.02/07/2012
Og senest betaling med date på 3 days.

Altså senest i dag.

Med:
if($vis[endperiode] = time() + (+3*24*60*60))
echo ("Perioder der udeløber perm. nu.");

Den fjernede det i SQL.
Så er spørgsmålet, om det er en fejl, eller om det der egentlig vil virke?.



Indlæg senest redigeret d. 05.07.2012 07:43 af Bruger #17281
Men det jeg bare ikke helt forstår, hvad er $tid ?.

I min sql kalder jeg den for "endperiode" med datoudklip.

startperiode og endperiode.

Så skal tid skiftes ud eller?

if(($vis[endperiode]+3*24*60*60) < time())

Den gør handling selvom der er langt tid til overskredet dato. :(

Også selvom det er sådan:
if(($tid+3*24*60*60) < time())

--
Ovenstående vil bare ikke virke :(

Og havde også det her i tankerne, men får fejl.

WHERE endperiode >= CURDATE() + DATE_SUB 3 DAY");

Ved heller ikke hvad er bedst.

Altså er dato på endperiode d.05/07/2012, så skal den først udføre en handling efter 3 dage over endperiode.

----------

Kom lige i tanke om jeg egentlig bare kunne tilføje en "dekdato".

Hvor jeg får lagt 31 dage oveni endperiode, og 34 dage oveni dekdato.

Så skal jeg bare lave en handling ud fra dekdato, da det er deaktiveringsdato.


Start periode:
05-07-2012
End periode:
05-08-2012
Send til faktura betaling:
08-08-2012

Burde vel være en ok løsning?



Indlæg senest redigeret d. 05.07.2012 10:47 af Bruger #17281
t