On Fri, Mar 9, 2012 at 9:23 AM, Tedd Sperling <tedd.sperl...@gmail.com> wrote: > On Mar 8, 2012, at 6:53 PM, Daniel Brown wrote: > On Mar 8, 2012 6:14 PM, "Tedd Sperling" <tedd.sperl...@gmail.com> wrote: >> >> > Side-point: I find it interesting that getdate() has all sorts of neat >> > descriptions for the current month (such as, what weekday a numbered day >> > is), but lacks how many days are in the month. Doesn't that seem odd? >> >> Oh, I see what you're saying now. Well, using getdate(), how else would you >> think to pass the parameter to get the last day other than using the current >> month and the last day (which would then obviously be overkill, of course). > > Well.. you could use any number that exceeds 31 -- or -- as I would have > suggested if it had been up to me, zero day would provide the number of days > in *that* month rather than the number of days in the previous month, which > was the point of my post. > >> All of this aside, though, you may instead want to use something along the >> lines of date('d',strtotime('last day of this month')); in tandem with your >> date formatting. > > That's a good idea, but > >> date('d',strtotime('last day of this month')); > > > gives me the number of days in *this* month, but not the next, or previous, > month. > > I need the result to be whatever date was selected -- something like: > > $number_days = date('d',strtotime('last day of April, 2014')); > > But that doesn't work. > > You see, I need something that makes sense to students. The idea that you > have to use the zero day (whatever that is) of the next month to see how many > days there are in this month is strange and confusing -- again my point. > > Thus far, the following looks better than what I came up with:: > > $what_date = getdate(mktime(0, 0, 0, $mon, 32, $year)); > $days_in_month = 32 - $what_date['mday']; > > But it's still strange. > > I was using: > > // get the last day of the month > $cont = true; > $tday = 27; > while (($tday <= 32) && ($cont)) > { > $tdate = getdate(mktime(0,0,0,$mon,$tday,$year)); > if ($tdate["mon"] != $mon) > { > $lastday = $tday - 1; > $cont = false; > } > $tday++; > } > > It made sense, but was too long. I figured there should be something better > and easier to explain -- but I'm still looking.
function count_days($month, $year) { return (mktime(0, 0, 0, $month+1, 1, $year) - mktime(0, 0, 0, $month, 1, $year))/86400; } -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php