PDA

Bekijk Volledige Versie : abonnementen en 29 februari



InterNetjes
01/06/06, 09:27
Hallo allemaal,

Hier maar even mijn eerste topic.

Ik was nieuwsgierig wat jullie doen met contracten die ingaan op de 29ste februari van een schrikkeljaar.
Is dan de looptijd van:
29-02-2004 t/m 28-02-2005
OF
29-02-2004 t/m 27-02-2005

Graag jullie gedachtegang hierover en alvast bedankt!

Euro-Servers
01/06/06, 09:32
Op één dag zal het dan ook wel niet steken zeker?

Triloxigen
01/06/06, 09:33
Ga je werkelijk wakker liggen van 1 dag? :|

InterNetjes
01/06/06, 09:47
Ga je werkelijk wakker liggen van 1 dag? :|

Wakker liggen in die zin, dat ik bezig ben met een contracten systeem en gewoon nieuwsgierig ben hoe jullie dat oplossen :)

Kijk als je 29-02-2004 t/m 28-02-2005 aanhoud dan is het jaar daar op 01-03-2005 t/m 28-02-2006.
Anders is het: 29-02-2004 t/m 27-02-2005 en dan het jaar er op 28-02-2005 t/m 27-02-2006

dreamhost_nl
01/06/06, 09:48
Hallo allemaal,

Hier maar even mijn eerste topic.

Ik was nieuwsgierig wat jullie doen met contracten die ingaan op de 29ste februari van een schrikkeljaar.
Is dan de looptijd van:
29-02-2004 t/m 28-02-2005
OF
29-02-2004 t/m 27-02-2005

Graag jullie gedachtegang hierover en alvast bedankt!

Doe het gewoon zo : 29-02-2004 tot 01-03-2005.

almar
01/06/06, 10:19
Als je een query maakt + interval n month, dan hoef je er zelf niet over na te denken.

xSeries
01/06/06, 10:28
Wanneer je uitgaat van het beginsel dat een contract loopt tot de volgende (zelfde) datum; loopt het van 29-2-2004 tot 29-2-2008.... Dat is een groter probleem natuurlijk :-)

InterNetjes
01/06/06, 10:29
Als je een query maakt + interval n month, dan hoef je er zelf niet over na te denken.

:W: dank je :W:

* :X ik sla mijzelf even met een van die MySQL boeken op mijn kop en nomineer mij zelf voor het WK domdenken :X *

Euro-Servers
01/06/06, 10:36
:W: dank je :W:

* :X ik sla mijzelf even met een van die MySQL boeken op mijn kop en nomineer mij zelf voor het WK domdenken :X *

Goed, dan moet ik dat niet meer doen :D

blaaat
01/06/06, 10:43
Als je een query maakt + interval n month, dan hoef je er zelf niet over na te denken.

zo doe ik het ook altijd..

gewoon time(); in database, en dan gewoon als tijd < 3600*24*365 dan is die verlopen

V. Kleijnendorst
01/06/06, 12:00
zo doe ik het ook altijd..

gewoon time(); in database, en dan gewoon als tijd < 3600*24*365 dan is die verlopen

Euhm, dat is juist heel iets anders.
Voor een datum géén time() in je database zetten, maar altijd een datetimekolom gebruiken.

veenman
01/06/06, 13:19
Ik denk dat zo'n 80% van jd klanten ook een domeinnaam bij het webhostingpakket afneemt, daarbij lijkt het me verstandig de expiratie datum van de bewuste domeinnaam aan te houden.

aleto
01/06/06, 14:08
zo doe ik het ook altijd..

gewoon time(); in database, en dan gewoon als tijd < 3600*24*365 dan is die verlopen
Da's dus FOUT! Want dan loopt je administratie bij het eerste de beste schikkeljaar fout, en niet alleen domeinen die op die 29e feb. zijn aangemeld. Want 365 dagen is dus alleen in normale jaren.

Je moet uit de aanvraagdatum gewoon de maand en dag eruit halen, en het jaar+1 doen. Dan heb je de startdatum voor het volgende jaar.

Tuneboy
02/06/06, 10:10
Ik snap niet dat jullie hier zo moeilijk doen, laat gewoon geen contracten ingaan op 29 feb, lijkt me de beste oplossing, en anders doe je toch gewoon tot 1 maart? ben je ook van het probleem af.

3j3ct
02/06/06, 10:53
hoe factureren jullie eigenlijk als iemand op bijvoorbeeld de 15e van de maand iets afneemt?

MaffeMuis
02/06/06, 11:05
$date = date("d-m-Y", time());
$explodedate = explode("-", $date);

$MonthStamp = mktime(0, 0, 0, $explodedate[1], $explodedate[0], $explodedate[2]);
$ThreeMonthStamp = mktime(0, 0, 0, $explodedate[1] - 2, $explodedate[0], $explodedate[2]);
$FourMonthStamp = mktime(0, 0, 0, $explodedate[1] - 3, $explodedate[0], $explodedate[2]);
$twelveMonthStamp = mktime(0, 0, 0, $explodedate[1] - 11, $explodedate[0], $explodedate[2]);




En dan heb je een time van de aanmaakdatum in je db hebt staan en krijg je voorbeeldje



$sql = "SELECT mekker,blaat FROM table WHERE Period='12' AND UpdateDate <= '".$twelveMonthStamp."'";



dan krijg je 1 maand van te voren dat het gaan verlopen..


Als je op de dag zelf een melding wilt krijgen, moet je er overal 1 maand bij tellen.



$date = date("d-m-Y", time());
$explodedate = explode("-", $date);

$MonthStamp = mktime(0, 0, 0, $explodedate[1] -1, $explodedate[0], $explodedate[2]);
$ThreeMonthStamp = mktime(0, 0, 0, $explodedate[1] - 3, $explodedate[0], $explodedate[2]);
$FourMonthStamp = mktime(0, 0, 0, $explodedate[1] - 4, $explodedate[0], $explodedate[2]);
$twelveMonthStamp = mktime(0, 0, 0, $explodedate[1] - 12, $explodedate[0], $explodedate[2]);




zo doe ik het... en ik heb een tabel met aangemaakt, en geupdate, zo weet je wanneer het contract is ingegaan en voor het laatst is verlengt. :D

alex[nl]
02/06/06, 15:57
hoe factureren jullie eigenlijk als iemand op bijvoorbeeld de 15e van de maand iets afneemt?
Tot de 15e van de volgende maand? Wat bedoel je precies? Je kan het 2 manieren doen iig:

[1] gewoon per de 15e
[2] de 'kpn methode'.. eerste keer factureren t/m 31e en direct nog 1 maand erbij... Dus om zegmaar de periode weer op een standaard periode te zetten.

Deze tweede kan wat lastig uitvallen met aankopen van domeinen enzo, die vervallen nl toch echt op de 15e als je ze dan vastlegt.

eightyb
06/06/06, 23:34
zo doe ik het ook altijd..

gewoon time(); in database, en dan gewoon als tijd < 3600*24*365 dan is die verlopen
Een datum is geen int ;)

InterNetjes
07/06/06, 09:36
Een datum is geen int ;)

maar een timestamp wel..