Re: Function mktime() documentation question
| From: | Matijn Woudt | Date: | Sat, 10 Mar 2012 18:06:28 +0000 |
| Subject: | Re: Function mktime() documentation question | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-316969@lists.php.net to get a copy of this message | ||
On Sat, Mar 10, 2012 at 6:20 PM, Maciek Sokolewicz
<maciek.sokolewicz@gmail.com> wrote:
> On 09-03-2012 14:11, Daniel Brown wrote:
>>
>> (To the list, as well. First day with my new fingers, apparently....)
>>
>> On Fri, Mar 9, 2012 at 08:09, Daniel Brown<danbrown@php.net> wrote:
>>>
>>> On Thu, Mar 8, 2012 at 21:23, Tedd Sperling<tedd.sperling@gmail.com>
>>> wrote:
>>>
>>> This starts getting a bit off-topic from your original email, but
>>> knowing that you're trying to use it for teaching your classes at the
>>> college, it may be of some value to you.
>>>
>>>>> 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.
>>>
>>>
>>> Sure it does, though you may have some issues when using
>>> punctuation, unnecessary words, or using capital letters for anything
>>> other than proper names. What version of PHP are you using? I get
>>> the correct answers for all of the following phrases:
>>>
>>> "last day of April 2014"
>>> "last day of this month"
>>> "last day of next month"
>>> "last day of last month"
>>> "third Saturday March 2012"
>>>
>>> Or you can even be excruciatingly redundant:
>>>
>>> echo date('d',strtotime('last day of this
>>> month',strtotime('next month')));
>>> echo date('d',strtotime('last day of this
>>> month',strtotime('February 2018')));
>>> echo date('d',strtotime('second
>>> Monday',strtotime('September
>>> 2012')));
>>>
>>
>>
>>
>
> I must admit I'm still at a loss why people would want a function to tell
> them the amount of days in a month. That amount is pretty much fixed (except
> for february, but that's also mathematically easy to fix). So a simple
> function like:
> function getAmountOfDaysInAMonth($month, $year) {
> $days = array(31, (($year%4==0 and ($year%100 > 0 or $year%400==0)) ? 29 :
> 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
> return $days[$month+1];
> }
Shouldn't this be $month-1?
- Matijn