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. >
