Archive for ‘PHP’


PHP: How many weeks in a particular month

So I’m writing a calendar app and was trying to figure out the weeks in the month for generating the display from a template.

Here’s my (assumedly clunky) response.

There’s a condensed version at the bottom that does the same thing:

<span style="color:#ffed8a; font-weight:bold">function</span> <span style="color:#ddbb00; font-weight:bold">getWeeks_in_month</span><span style="color:#ababab">(</span><span style="color:#dedede; font-weight:bold">$month</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$year</span><span style="color:#ababab">)</span>
<span style="color:#ababab">{</span>
  <span style="color:#978345; font-style:italic">#get start date</span>
  <span style="color:#dedede; font-weight:bold">$startDate</span> <span style="color:#ababab">=</span> <span style="color:#ffed8a; font-weight:bold">mktime</span><span style="color:#ababab">(</span><span style="color:#ffffff">12</span><span style="color:#ababab">,</span><span style="color:#ffffff">0</span><span style="color:#ababab">,</span><span style="color:#ffffff">0</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$month</span><span style="color:#ababab">,</span> <span style="color:#ffffff">1</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$year</span><span style="color:#ababab">);</span>

  <span style="color:#978345; font-style:italic"># find empty days at stop of month</span>
  <span style="color:#dedede; font-weight:bold">$emptyDays</span> <span style="color:#ababab">= (</span><span style="color:#ffed8a; font-weight:bold">date</span><span style="color:#ababab">(</span><span style="color:#ff0000">'N'</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$startDate</span><span style="color:#ababab">) ==</span> <span style="color:#ffffff">7</span><span style="color:#ababab">)</span> ? <span style="color:#ffffff">0</span> <span style="color:#ababab">:</span> <span style="color:#ffed8a; font-weight:bold">date</span><span style="color:#ababab">(</span><span style="color:#ff0000">'N'</span><span style="color:#ababab">,</span>
  <span style="color:#dedede; font-weight:bold">$startDate</span><span style="color:#ababab">);</span>

  <span style="color:#978345; font-style:italic"># add to days of month to get 'total'</span>
  <span style="color:#dedede; font-weight:bold">$monthDays</span> <span style="color:#ababab">=</span> <span style="color:#ffed8a; font-weight:bold">date</span><span style="color:#ababab">(</span><span style="color:#ff0000">'t'</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$startDate</span><span style="color:#ababab">);</span>

  <span style="color:#ffed8a; font-weight:bold">return ceil</span><span style="color:#ababab">((</span><span style="color:#dedede; font-weight:bold">$emptyDays</span> <span style="color:#ababab">+</span> <span style="color:#dedede; font-weight:bold">$monthDays</span><span style="color:#ababab">)/</span><span style="color:#ffffff">7</span><span style="color:#ababab">);</span>
<span style="color:#ababab">}</span>

<span style="color:#ffed8a; font-weight:bold">function</span> <span style="color:#ddbb00; font-weight:bold">getWeeks_in_month</span><span style="color:#ababab">(</span><span style="color:#dedede; font-weight:bold">$month</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$year</span><span style="color:#ababab">)</span>
<span style="color:#ababab">{</span>
  <span style="color:#ffed8a; font-weight:bold">return ceil</span><span style="color:#ababab">((((</span><span style="color:#ffed8a; font-weight:bold">date</span><span style="color:#ababab">(</span><span style="color:#ff0000">'N'</span><span style="color:#ababab">,</span> <span style="color:#ffed8a; font-weight:bold">mktime</span><span style="color:#ababab">(</span><span style="color:#ffffff">12</span><span style="color:#ababab">,</span><span style="color:#ffffff">0</span><span style="color:#ababab">,</span><span style="color:#ffffff">0</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$month</span><span style="color:#ababab">,</span> <span style="color:#ffffff">1</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$year</span><span style="color:#ababab">))</span>
  <span style="color:#ababab">==</span> <span style="color:#ffffff">7</span><span style="color:#ababab">)</span> ? <span style="color:#ffffff">0</span> <span style="color:#ababab">:</span> <span style="color:#ffed8a; font-weight:bold">date</span><span style="color:#ababab">(</span><span style="color:#ff0000">'N'</span><span style="color:#ababab">,</span> <span style="color:#ffed8a; font-weight:bold">mktime</span><span style="color:#ababab">(</span><span style="color:#ffffff">12</span><span style="color:#ababab">,</span><span style="color:#ffffff">0</span><span style="color:#ababab">,</span><span style="color:#ffffff">0</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$month</span><span style="color:#ababab">,</span> <span style="color:#ffffff">1</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$year</span><span style="color:#ababab">))) +</span>
  <span style="color:#ffed8a; font-weight:bold">date</span><span style="color:#ababab">(</span><span style="color:#ff0000">'t'</span><span style="color:#ababab">,</span> <span style="color:#dedede; font-weight:bold">$startDate</span><span style="color:#ababab">))/</span><span style="color:#ffffff">7</span><span style="color:#ababab">);</span>
<span style="color:#ababab">}</span>

└ Tags: , , ,

Disabling page scroll while scrolling in a DIV


Just so I don’t have to hunt this down again:

I have a DIV that contains a list of items on a larger page. This DIV is restricted in height. When I scroll in that DIV and get to the bottom of the DIV, the whole page will scroll down. This can be annoying. Here’s how to stop page scrolling via a DIV.

<script language="javascript">
function stopScroll(scrollHide) {
  var scroller = (scrollHide == true) ? 'hidden' : '';
  document.documentElement.style.overflow = scroller;
}
</script>

<div id="formList_container" onmouseout="stopScroll(false)" onmouseover="stopScroll(true)">