Hi
You need to add Zend_Date::setOptions(array('extend_month' => true));
before doing month calculation.
best regards,
holo
2008/3/18, tflessak <[EMAIL PROTECTED]>:
>
> Hi,
>
> I mean the method subMonth doesn't subtract 5 months correctly. For example
> (my timezone is Sao Paulo/Brazil):
>
>
> date_default_timezone_set('America/Sao_Paulo');
>
> $dt = new Zend_Date();
> $dt->subMonth(5);
>
> $result = $dt->toString('dd/MM/yyyy');
>
> On version 1.0.3 $result is the current date minus 5 months (18/10/2007). On
> version 1.0.4 and 1.5 $result is always the first day of the month, in that
> case, 18/03/2008 - 5 months = 01/10/2007.
> I didn't set any specific Zend_Date option.
>
> Thank you
>
>
>
>
>
> thomasW wrote:
> >
> > Hy Thiago,
> >
> > please provide us with all informations...
> >
> > What do you mean with "the code does not work anymore" ?
> > When I run your code it works without problems.
> >
> > Which timezone have you set ? ... it's not declared in your example.
> > What is the date-time you executed it ?
> > What was the result ?
> > What did you expect to be returned ?
> > Did you set any options before initiation ?
> >
> > Greetings
> > Thomas Weidner, I18N Team Leader
> > http://www.thomasweidner.com
> >
> > ----- Original Message -----
> > From: "tflessak" <[EMAIL PROTECTED]>
> > To: <[email protected]>
> > Sent: Tuesday, March 18, 2008 4:05 PM
> > Subject: [fw-general] Zend_Date and GMT problem
> >
> >
> >>
> >> Hi!
> >>
> >> I was using Zend Framework 1.0.3
> >> Into my code there are situations where I use some month calculation like
> >> this:
> >>
> >> $dt = new Zend_Date();
> >> $dt->subMonth(5);
> >>
> >> After update to version 1.5, this code doesn't work anymore.
> >> Doing some comparison with version 1.0.3, I could see that the function
> >> which manipulates the month calculation includes the function
> >> 'DateObject::mktime' it has a boolean parameter called 'gmt'. On version
> >> 1.0.3, internally this parameter was false when I call the functions
> >> 'subMonth' ou 'addMonth'. On version 1.0.4 and 1.5 the 'gmt' parameter
> >> passed to true and consequently internally the 'DateObject::mktime' use
> >> the
> >> php function gmmktime.
> >> I'm having problems after this modification, because the gmmktime is
> >> returning me a wrong date. I tried this code:
> >>
> >> date_default_timezone_set('America/Sao_Paulo');
> >> $dategmt = @gmmktime(0, 0, 0, 3, 18, 2008);
> >> $datemk = @mktime(0, 0, 0, 3, 18, 2008);
> >>
> >> ... and the return of gmmktime is 3 hour less then mktime, and the date
> >> get
> >> back to the day before.
> >>
> >> My question is: Am I doing something wrong? Somebody knows the reason of
> >> why
> >> the gmmktime is used instead mktime on version 1.0.4 and 1.5 ?
> >>
> >> Thank you for help!
> >> Regards
> >> Thiago
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Zend_Date-and-GMT-problem-tp16122102s16154p16122102.html
> >> Sent from the Zend Framework mailing list archive at Nabble.com.
> >
> >
> >
>
> --
>
> View this message in context:
> http://www.nabble.com/Zend_Date-and-GMT-problem-tp16122102s16154p16126515.html
>
> Sent from the Zend Framework mailing list archive at Nabble.com.
>
>