Well, adding/subtracting months is pretty tricky sometimes, especially if
the date is at the end of the month. Mootools, overall, should behave like
all frameworks do on any language. Add/SubMonths are common functions on
many languages, so maybe someone should take a look at how do they work in
PHP, MySQL, etc..

Either way, I think Mootools should rely on date.setMonth(date.getMonth() +
1) which seem to work fine in all cases.


On Wed, May 27, 2009 at 1:53 AM, Scott Kyle <[email protected]> wrote:

>
> After looking into this, I really don't think this behavior is a bug.
> date.increment('month') is literally adding a 'month unit' to the date
> object.  A good example of that is (Jan 30).increment('month').  I
> don't think any of us think that the date should morph into Feb 28?
> It's not increment's job to take this into account, nor timezone
> shifts.
>
> So I think your point about updating documentation is right, it should
> be called out more clearly what you can't use increment for without
> certain precautions.
>
> On May 26, 7:40 pm, Eneko Alonso <[email protected]> wrote:
> > Sorry, I don't have time for that right now...
> >
> >
> >
> > On Tue, May 26, 2009 at 4:24 PM, nutron <[email protected]> wrote:
> > > Thanks. Can you open a ticket at lighthouse?
> > >https://mootools.lighthouseapp.com/projects/24057-mootoolsmore
> >
> > > On Tue, May 26, 2009 at 4:18 PM, Eneko Alonso (via Nabble) <
> > > ml-user%2b166768-1110295...@...<
> http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2977974&i=0>
> > > > wrote:
> >
> > >> Ok, I did some research and here is the problem. It seems like it has
> some
> > >> issues with the daylight time change.
> >
> > >> var x = new Date();
> > >> x.set('date', 1).clearTime();
> > >> for (i=0; i<12; i++) {
> > >>  console.log(x.increment('month'));
> > >> }
> >
> > >> Mon Jun 01 2009 00:00:00 GMT-0700 (PDT) $family=Object
> > >> Wed Jul 01 2009 00:00:00 GMT-0700 (PDT) $family=Object
> > >> Sat Aug 01 2009 00:00:00 GMT-0700 (PDT) $family=Object
> > >> Tue Sep 01 2009 00:00:00 GMT-0700 (PDT) $family=Object
> > >> Thu Oct 01 2009 00:00:00 GMT-0700 (PDT) $family=Object
> > >> Sun Nov 01 2009 00:00:00 GMT-0700 (PDT) $family=Object
> > >> *Mon Nov 30 2009 23:00:00 GMT-0800 (PST) $family=Object*
> > >> *Wed Dec 30 2009 23:00:00 GMT-0800 (PST) $family=Object*
> > >> *Sat Jan 30 2010 23:00:00 GMT-0800 (PST) $family=Object*
> > >> *Tue Mar 02 2010 23:00:00 GMT-0800 (PST) $family=Object*
> > >> *Sat Apr 03 2010 00:00:00 GMT-0700 (PDT) $family=Object*
> > >> *Mon May 03 2010 00:00:00 GMT-0700 (PDT) $family=Object*
> >
> > >> In order to fix this issue, since I only care about the date and not
> the
> > >> time, I set the time to noon, so I always get the 1st of the month as
> > >> expected:
> >
> > >> var x = new Date();
> > >> x.set('date', 1).clearTime().set('hours', 12);
> > >> for (i=0; i<12; i++) {
> > >> console.log(x.increment('month'));
> > >> }
> >
> > >> Mon Jun 01 2009 12:00:00 GMT-0700 (PDT) $family=Object
> > >> Wed Jul 01 2009 12:00:00 GMT-0700 (PDT) $family=Object
> > >> Sat Aug 01 2009 12:00:00 GMT-0700 (PDT) $family=Object
> > >> Tue Sep 01 2009 12:00:00 GMT-0700 (PDT) $family=Object
> > >> Thu Oct 01 2009 12:00:00 GMT-0700 (PDT) $family=Object
> > >> Sun Nov 01 2009 11:00:00 GMT-0800 (PST) $family=Object
> > >> Tue Dec 01 2009 11:00:00 GMT-0800 (PST) $family=Object
> > >> Fri Jan 01 2010 11:00:00 GMT-0800 (PST) $family=Object
> > >> Mon Feb 01 2010 11:00:00 GMT-0800 (PST) $family=Object
> > >> Mon Mar 01 2010 11:00:00 GMT-0800 (PST) $family=Object
> > >> Thu Apr 01 2010 12:00:00 GMT-0700 (PDT) $family=Object
> > >> Sat May 01 2010 12:00:00 GMT-0700 (PDT) $family=Object
> >
> > >> I'll take a look at the source code and see if I can figure out a
> patch
> > >> for this :)
> >
> > >> On Tue, May 26, 2009 at 3:53 PM, Eneko Alonso <eneko.alo...@...<
> http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2977948&i=0>
> > >> > wrote:
> >
> > >>> I'm using Date.increment('month') from Mootools More 1.2.2.2 and I
> just
> > >>> found it does not work as I expected.To me, add month means the day
> wont
> > >>> change. Thus, if you add a month to January 1st 2009, it should
> return
> > >>> February 1st 2009. But, if you keep adding 1 month at a time you will
> find
> > >>> something like November 30th 2009.
> >
> > >>> Either there is a bug on the function or is adding 30 days every
> time,
> > >>> instead of a month.
> >
> > >>> I haven't tested for end dates, but I'll understand these are more
> > >>> complicated.
> >
> > >>> Whatever is the actual method implemented to increment months, it
> should
> > >>> be better explained on the documentation:
> > >>>http://mootools.net/docs/more/Native/Date
> >
> > >>> Thanks :)
> >
> > > The MooTools Tutorial:www.mootorial.comClientcide:www.clientcide.com
> >
> > > ------------------------------
> > > View this message in context: Re: [Moo] Re: Date.increment('month') not
> > > working as expected<
> http://n2.nabble.com/-Moo--Date.increment%28%27month%27%29-not-workin...>
> > > Sent from the MooTools Users mailing list archive<
> http://n2.nabble.com/MooTools-Users-f660466.html>at Nabble.com.
>

Reply via email to