<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WLScripting.com &#187; Time/Date</title>
	<atom:link href="http://www.wlscripting.com/tutorial/category/timedate/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wlscripting.com</link>
	<description>PHP coding tutorials</description>
	<lastBuildDate>Wed, 10 Mar 2010 23:02:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-beta-1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Calculate time difference between dates</title>
		<link>http://www.wlscripting.com/tutorial/72</link>
		<comments>http://www.wlscripting.com/tutorial/72#comments</comments>
		<pubDate>Wed, 20 Jan 2010 14:58:39 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/?p=72</guid>
		<description><![CDATA[Recently I needed some code to calculate a users age based on their birthday. There are many different functions that are already created out there that I could have used, but instead I wrote this piece of code. It uses PHP 5 DateTime class to return an array of information pertaining to how old a [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I needed some code to calculate a users age based on their birthday. There are many different functions that are already created out there that I could have used, but instead I wrote this piece of code. It uses PHP 5 DateTime class to return an array of information pertaining to how old a person is. By default if you leave the second parameter off it will calculate the difference from the start date to the current day. If you are trying to calculate how old somebody was when they had passed away or how old they were on a certain date you can pass the second parameter. There are several different checks in this code snippet to make sure you are using a valid date for the start and end date.</p>
<p>This function requires dates to be passed in standard: YYYY-MM-DD format<br />
<strong>Code:</strong></p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">function_exists</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">calculate_age</span><span class="hl-quotes">'</span><span class="hl-brackets">)) {
	</span><span class="hl-comment">// Checked this function against </span><span class="hl-url">http://www.timeanddate.com/date/duration.html</span><span class="hl-comment">
	</span><span class="hl-reserved">function </span><span class="hl-identifier">calculate_age</span><span class="hl-brackets">(</span><span class="hl-var">$startdate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">0000-00-00</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$enddate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">0000-00-00</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
		
		</span><span class="hl-comment">// Check to see if start date is valid</span><span class="hl-code">
		@</span><span class="hl-reserved">list</span><span class="hl-brackets">(</span><span class="hl-var">$year</span><span class="hl-code">, </span><span class="hl-var">$month</span><span class="hl-code">, </span><span class="hl-var">$day</span><span class="hl-brackets">)</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$startdate</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">@!</span><span class="hl-identifier">checkdate</span><span class="hl-brackets">(</span><span class="hl-var">$month</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">,</span><span class="hl-var">$year</span><span class="hl-brackets">)) {
			</span><span class="hl-reserved">return false</span><span class="hl-code">;
		</span><span class="hl-brackets">}
		
		</span><span class="hl-comment">// Create a new datetime object to do our calculations with
		</span><span class="hl-var">$s</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$startdate</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-comment">// We have to have an end date so if it is empty or 0000-00-00 we will make it right now
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$enddate</span><span class="hl-brackets">) </span><span class="hl-reserved">OR </span><span class="hl-var">$enddate</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">0000-00-00</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
			</span><span class="hl-var">$enddate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">now</span><span class="hl-quotes">'</span><span class="hl-code">;
		</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
			</span><span class="hl-comment">// Check to see if end date is valid</span><span class="hl-code">
			@</span><span class="hl-reserved">list</span><span class="hl-brackets">(</span><span class="hl-var">$year</span><span class="hl-code">, </span><span class="hl-var">$month</span><span class="hl-code">, </span><span class="hl-var">$day</span><span class="hl-brackets">)</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$enddate</span><span class="hl-brackets">)</span><span class="hl-code">;
			</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">@!</span><span class="hl-identifier">checkdate</span><span class="hl-brackets">(</span><span class="hl-var">$month</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">,</span><span class="hl-var">$year</span><span class="hl-brackets">)) {
				</span><span class="hl-reserved">return false</span><span class="hl-code">;
			</span><span class="hl-brackets">}
		}
		</span><span class="hl-comment">// Create a new datetime object to compare as an end date
		</span><span class="hl-var">$e</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$enddate</span><span class="hl-brackets">)</span><span class="hl-code">;
		
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Ymd</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Ymd</span><span class="hl-quotes">'</span><span class="hl-brackets">)) {
			</span><span class="hl-comment">// End date cannot be before start date
			</span><span class="hl-reserved">return false</span><span class="hl-code">;
		</span><span class="hl-brackets">}
		
		</span><span class="hl-comment">// Calculate our base numbers here
		</span><span class="hl-var">$years</span><span class="hl-code"> = </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Y</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Y</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-var">$months</span><span class="hl-code"> = </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">m</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">m</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-var">$days</span><span class="hl-code"> = </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;

		</span><span class="hl-comment">// We cannot have negative days
		// Calculate how many days are in the startdate month
		// subtract the startdate day and add 1
		// Then add back in the day of the enddate
		// Subtract 1 month
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$days</span><span class="hl-code"> &lt; </span><span class="hl-number">0</span><span class="hl-brackets">) {
			</span><span class="hl-var">$days</span><span class="hl-code"> = </span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">t</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-code">;
			</span><span class="hl-var">$days</span><span class="hl-code"> += </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
			</span><span class="hl-var">$months</span><span class="hl-code">--;
		</span><span class="hl-brackets">}
		
		</span><span class="hl-comment">// We cannot have negative months
		// Subtract 1 year and add back 12 months to make months positive
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$months</span><span class="hl-code"> &lt; </span><span class="hl-number">0</span><span class="hl-brackets">) {
			</span><span class="hl-var">$years</span><span class="hl-code">--;
			</span><span class="hl-var">$months</span><span class="hl-code"> += </span><span class="hl-number">12</span><span class="hl-code">;
		</span><span class="hl-brackets">}

		</span><span class="hl-reserved">return array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">years</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-var">$years</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">months</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-var">$months</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">days</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-var">$days</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-brackets">}
}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p><strong>Usage:</strong></p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// Current date is 2010-01-19
</span><span class="hl-var">$birthday</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">1986-09-23</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$age</span><span class="hl-code"> = </span><span class="hl-identifier">calculate_age</span><span class="hl-brackets">(</span><span class="hl-var">$birthday</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$age</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;hr /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$startdate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">1985-09-06</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$enddate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">1986-09-23</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$difference</span><span class="hl-code"> = </span><span class="hl-identifier">calculate_age</span><span class="hl-brackets">(</span><span class="hl-var">$startdate</span><span class="hl-code">, </span><span class="hl-var">$enddate</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$difference</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p><strong>Output:</strong></p>
<blockquote><p>array(3) { ["years"]=>  int(23) ["months"]=>  int(3) ["days"]=>  int(27) }<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
array(3) { ["years"]=>  int(1) ["months"]=>  int(0) ["days"]=>  int(17) }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/72/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get date by position (ie. third Wednesday of January)</title>
		<link>http://www.wlscripting.com/tutorial/59</link>
		<comments>http://www.wlscripting.com/tutorial/59#comments</comments>
		<pubDate>Wed, 06 May 2009 18:26:59 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/59</guid>
		<description><![CDATA[Allows you to convert: "third Wednesday of January" to the actual date value.]]></description>
			<content:encoded><![CDATA[<p>In a recent project I needed to come up with code to calculate something like the first, second, third day of whatever month. Unfortunately the strtotime() function does not let you enter &#8220;third Wednesday of January&#8221; to calculate the date. This is where the code below works great for such things.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-code">, </span><span class="hl-var">$Weekday</span><span class="hl-code">, </span><span class="hl-var">$Month</span><span class="hl-code">, </span><span class="hl-var">$Year</span><span class="hl-brackets">) {
	</span><span class="hl-comment">// Sanatize some of the inputs
	</span><span class="hl-var">$Position</span><span class="hl-code"> = </span><span class="hl-identifier">strtolower</span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-var">$Weekday</span><span class="hl-code"> = </span><span class="hl-identifier">strtolower</span><span class="hl-brackets">(</span><span class="hl-var">$Weekday</span><span class="hl-brackets">)</span><span class="hl-code">;
	
	</span><span class="hl-comment">// Go to next month so we can then go back 1 week at end of script for calculating last xxx of month
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-code">==</span><span class="hl-quotes">'</span><span class="hl-string">last</span><span class="hl-quotes">'</span><span class="hl-brackets">) { </span><span class="hl-var">$Month</span><span class="hl-code"> += </span><span class="hl-number">1</span><span class="hl-code">; </span><span class="hl-brackets">}
        </span><span class="hl-comment">// We cannot have 13 months so set as January of the next year.
	// This was pointed out by Evan who made a comment on the posting of this script
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$Month</span><span class="hl-code"> &gt; </span><span class="hl-number">12</span><span class="hl-brackets">) {
		</span><span class="hl-var">$Month</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;
		</span><span class="hl-var">$Year</span><span class="hl-code"> += </span><span class="hl-number">1</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Create new date object for the first of the month
	</span><span class="hl-var">$D</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$Year</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$Month</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">-1</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-var">$DOW</span><span class="hl-code"> = </span><span class="hl-var">$D</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">w</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Get the current day of the week based on the 1st of the month
	</span><span class="hl-var">$keys</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">sunday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">0</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">monday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">1</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">tuesday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">2</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">wednesday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">3</span><span class="hl-code">,
				  </span><span class="hl-quotes">'</span><span class="hl-string">thursday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">4</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">friday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">5</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">saturday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">6</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-comment">// Calculate what the offset is based on the current day of the week
	// vs the day in the week you want to get
	</span><span class="hl-var">$offset</span><span class="hl-code"> = </span><span class="hl-var">$keys</span><span class="hl-brackets">[</span><span class="hl-var">$Weekday</span><span class="hl-brackets">]</span><span class="hl-code"> - </span><span class="hl-var">$DOW</span><span class="hl-code">;
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$offset</span><span class="hl-code">&lt;</span><span class="hl-number">0</span><span class="hl-brackets">) { </span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">7</span><span class="hl-code">; </span><span class="hl-brackets">}

	</span><span class="hl-reserved">switch </span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-brackets">) {
		</span><span class="hl-comment">// Don't need to add anything to first
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">second</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">7</span><span class="hl-code">; </span><span class="hl-comment">// Add 1 week
			</span><span class="hl-reserved">break</span><span class="hl-code">;
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">third</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">14</span><span class="hl-code">; </span><span class="hl-comment">// Add 2 weeks
			</span><span class="hl-reserved">break</span><span class="hl-code">;
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">fourth</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">21</span><span class="hl-code">; </span><span class="hl-comment">// Add 3 weeks
			</span><span class="hl-reserved">break</span><span class="hl-code">;
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">last</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> -= </span><span class="hl-number">7</span><span class="hl-code">; </span><span class="hl-comment">// Go back 7 days
			</span><span class="hl-reserved">break</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Add the current offset of days to the date object
	</span><span class="hl-var">$D</span><span class="hl-code">-&gt;</span><span class="hl-identifier">modify</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">+</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$offset</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> days</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-reserved">return </span><span class="hl-var">$D</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Y-m-d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
	
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Usage:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// This will output 2009-01-05
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">First Monday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">first</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">monday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-13
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Second Tuesday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">second</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">tuesday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-21
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Third Wednesday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">third</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">wednesday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-22
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Fourth Thursday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">fourth</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">thursday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-30
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Last Friday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">last</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">friday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>This can be used in a recurring calendar events page to allow similar event creation like the recurring events in Microsoft Outlook or any other popular calender applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/59/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Date Check/Validation</title>
		<link>http://www.wlscripting.com/tutorial/52</link>
		<comments>http://www.wlscripting.com/tutorial/52#comments</comments>
		<pubDate>Thu, 16 Oct 2008 18:17:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/52</guid>
		<description><![CDATA[A date checking/validation function to make sure your date is correct format.]]></description>
			<content:encoded><![CDATA[<p>If you have ever tried to create some kind of script that requires dates to be inserted into a database or used for a calculation, proper formatting is usually required for these activities. Below is code that will strip out all extra characters, check if in correct pattern(mm/dd/yy, mm/dd/yyyy, yyyy/mm/dd), then check if the date actually exists. If your date actually exists it will then output the date in whatever format you wish it to be in.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php

</span><span class="hl-reserved">function </span><span class="hl-identifier">MyDateCheck</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-code">, </span><span class="hl-var">$ReturnFormat</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">m/d/Y</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
	</span><span class="hl-comment">// Clean date to make sure it has legal characters
	</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-identifier">preg_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">/[^0-9._\/</span><span class="hl-special">\\</span><span class="hl-string">\-]/</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">''</span><span class="hl-code">, </span><span class="hl-var">$Date</span><span class="hl-brackets">)</span><span class="hl-code">;
	
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-brackets">) </span><span class="hl-reserved">OR empty</span><span class="hl-brackets">(</span><span class="hl-var">$ReturnFormat</span><span class="hl-brackets">)) {
		</span><span class="hl-comment">// We do not have everything that we need to complete the function, return false
		</span><span class="hl-reserved">return false</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Replace a variety of date separators with one common separator
	</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">.</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-special">\'</span><span class="hl-string">, </span><span class="hl-quotes">'</span><span class="hl-code">-</span><span class="hl-quotes">'</span><span class="hl-string">), </span><span class="hl-quotes">'</span><span class="hl-code">/</span><span class="hl-quotes">'</span><span class="hl-string">, $Date);
	// Start the date checking
	//Matches mm/dd/yy, mm/dd/yyyy and only allows days from 1 to 31
	if (preg_match(&quot;/^([0-1][0-2]|[0]?[0-9])\/([0-2][0-9]|3[01]|[0-9])\/([0-9]{2,4})$/&quot;, $Date, $parts)) {
		// Using the $parts array parse out the month, day and year for further date calculations
		// We convert them into Integers so there is no possible way of any stray characters missed from the replace above
		$Month = (INT) $parts[1];
		$Day = (INT) $parts[2];
		$Year = (INT) $parts[3];
	// Matches yyyy/mm/dd and only allows days from 1 to 31
	} elseif (preg_match(&quot;/^([0-9]{4})\/([0-1][0-2]|[0]?[0-9])\/([0-2][0-9]|3[01]|[0-9])$/&quot;, $Date, $parts)) {
		$Year = (INT) $parts[1];
		$Month = (INT) $parts[2];
		$Day = (INT) $parts[3];
	} else {
		return false;
	}
	// If the date gets past the matching we confirm the date with checkdate
	// This function also works to detect any bad dates due to leap year
	if (checkdate($Month, $Day, $Year)) {
		// Using PHP5</span><span class="hl-quotes">'</span><span class="hl-identifier">s DateTime object to format the date
		</span><span class="hl-var">$NewDate</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-comment">// Return date in a new format, defaulted to m/d/Y
		</span><span class="hl-reserved">return </span><span class="hl-var">$NewDate</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-var">$ReturnFormat</span><span class="hl-brackets">)</span><span class="hl-code">;
	}
	</span><span class="hl-comment">// Return false by default if something happens above that is not expected
	</span><span class="hl-reserved">return false</span><span class="hl-code">;
}

?&gt;</span></pre></div></div>
<p>You would then use the code like:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">10-16-2008</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$MyDate</span><span class="hl-code"> = </span><span class="hl-identifier">MyDateCheck</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-brackets">)) {
       </span><span class="hl-comment">// Use your value from $MyDate as it is now safe and in correct format
	</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">A correct date was passed through: </span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$MyDate</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
	</span><span class="hl-reserved">echo </span><span class="hl-var">$Date</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> is not a valid date</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>OR</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">10-16-2008</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$MyDate</span><span class="hl-code"> = </span><span class="hl-identifier">MyDateCheck</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">mm-dd-yy</span><span class="hl-quotes">'</span><span class="hl-brackets">)) {
       </span><span class="hl-comment">// Use your value from $MyDate as it is now safe and in correct format
	</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">A correct date was passed through: </span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$MyDate</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
	</span><span class="hl-reserved">echo </span><span class="hl-var">$Date</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> is not a valid date</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/52/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List all Mondays</title>
		<link>http://www.wlscripting.com/tutorial/31</link>
		<comments>http://www.wlscripting.com/tutorial/31#comments</comments>
		<pubDate>Sun, 20 Aug 2006 01:25:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://wlscripting.com/tutorial/31</guid>
		<description><![CDATA[List all Mondays in a specified year]]></description>
			<content:encoded><![CDATA[<p>Ever need some code to list all the Mondays in a specified year? Here is some code to do just that:</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">getMondays</span><span class="hl-brackets">(</span><span class="hl-var">$year</span><span class="hl-brackets">) {
  </span><span class="hl-var">$newyear</span><span class="hl-code"> = </span><span class="hl-var">$year</span><span class="hl-code">;
  </span><span class="hl-var">$week</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
  </span><span class="hl-var">$day</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
  </span><span class="hl-var">$mo</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;
  </span><span class="hl-var">$mondays</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">()</span><span class="hl-code">;
  </span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;
  </span><span class="hl-reserved">while </span><span class="hl-brackets">(</span><span class="hl-var">$week</span><span class="hl-code"> != </span><span class="hl-number">1</span><span class="hl-brackets">) {
   </span><span class="hl-var">$day</span><span class="hl-code">++;
   </span><span class="hl-var">$week</span><span class="hl-code"> = </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">w</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">mktime</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-var">$mo</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">, </span><span class="hl-var">$year</span><span class="hl-brackets">))</span><span class="hl-code">;
  </span><span class="hl-brackets">}
  </span><span class="hl-identifier">array_push</span><span class="hl-brackets">(</span><span class="hl-var">$mondays</span><span class="hl-code">,</span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">r</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">mktime</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-var">$mo</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">, </span><span class="hl-var">$year</span><span class="hl-brackets">)))</span><span class="hl-code">;
  </span><span class="hl-reserved">while </span><span class="hl-brackets">(</span><span class="hl-var">$newyear</span><span class="hl-code"> == </span><span class="hl-var">$year</span><span class="hl-brackets">) {
   </span><span class="hl-var">$test</span><span class="hl-code"> =  </span><span class="hl-identifier">strtotime</span><span class="hl-brackets">(</span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">r</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">mktime</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-var">$mo</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">, </span><span class="hl-var">$year</span><span class="hl-brackets">))</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string">+</span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-var">$i</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> week</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
   </span><span class="hl-var">$i</span><span class="hl-code">++;
   </span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$year</span><span class="hl-code"> == </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Y</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span><span class="hl-var">$test</span><span class="hl-brackets">)) {
     </span><span class="hl-identifier">array_push</span><span class="hl-brackets">(</span><span class="hl-var">$mondays</span><span class="hl-code">,</span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">r</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$test</span><span class="hl-brackets">))</span><span class="hl-code">;
   </span><span class="hl-brackets">}
   </span><span class="hl-var">$newyear</span><span class="hl-code"> = </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Y</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span><span class="hl-var">$test</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-brackets">}
  </span><span class="hl-reserved">return </span><span class="hl-var">$mondays</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-identifier">print_r</span><span class="hl-brackets">(</span><span class="hl-identifier">getMondays</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">2006</span><span class="hl-quotes">'</span><span class="hl-brackets">))</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/31/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Countdown to a time</title>
		<link>http://www.wlscripting.com/tutorial/28</link>
		<comments>http://www.wlscripting.com/tutorial/28#comments</comments>
		<pubDate>Tue, 01 Aug 2006 00:58:29 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://wlscripting.com/tutorial/28</guid>
		<description><![CDATA[Calculate the amount of days, hours, minutes or seconds until a date in the future.]]></description>
			<content:encoded><![CDATA[<p>If you have a date in the future that you want to show how many days, minutes, or seconds it is until that date, this is the script for you. When you provide a date in the future, it will return these values. If the time is alreay past, it shows &#8220;The countdown is over!&#8221;.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">timeLeft</span><span class="hl-brackets">(</span><span class="hl-var">$theTime</span><span class="hl-brackets">) {
  </span><span class="hl-var">$now</span><span class="hl-code"> = </span><span class="hl-identifier">strtotime</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">now</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$timeLeft</span><span class="hl-code"> = </span><span class="hl-var">$theTime</span><span class="hl-code"> - </span><span class="hl-var">$now</span><span class="hl-code">;
  
  </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$timeLeft</span><span class="hl-code"> &gt; </span><span class="hl-number">0</span><span class="hl-brackets">) {
    </span><span class="hl-var">$days</span><span class="hl-code"> = </span><span class="hl-identifier">floor</span><span class="hl-brackets">(</span><span class="hl-var">$timeLeft</span><span class="hl-code">/</span><span class="hl-number">60</span><span class="hl-code">/</span><span class="hl-number">60</span><span class="hl-code">/</span><span class="hl-number">24</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$hours</span><span class="hl-code"> = </span><span class="hl-var">$timeLeft</span><span class="hl-code">/</span><span class="hl-number">60</span><span class="hl-code">/</span><span class="hl-number">60</span><span class="hl-code">%</span><span class="hl-number">24</span><span class="hl-code">;
    </span><span class="hl-var">$mins</span><span class="hl-code"> = </span><span class="hl-var">$timeLeft</span><span class="hl-code">/</span><span class="hl-number">60</span><span class="hl-code">%</span><span class="hl-number">60</span><span class="hl-code">;
    </span><span class="hl-var">$secs</span><span class="hl-code"> = </span><span class="hl-var">$timeLeft</span><span class="hl-code">%</span><span class="hl-number">60</span><span class="hl-code">;
    
    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$days</span><span class="hl-brackets">) {
      </span><span class="hl-var">$theText</span><span class="hl-code"> = </span><span class="hl-var">$days</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Day(s)</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
      </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$hours</span><span class="hl-brackets">) {
        </span><span class="hl-var">$theText</span><span class="hl-code"> .= </span><span class="hl-quotes">&quot;</span><span class="hl-string">, </span><span class="hl-quotes">&quot;</span><span class="hl-code"> .</span><span class="hl-var">$hours</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Hour(s) </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
      </span><span class="hl-brackets">}
    } </span><span class="hl-reserved">elseif</span><span class="hl-brackets">(</span><span class="hl-var">$hours</span><span class="hl-brackets">) {
      </span><span class="hl-var">$theText</span><span class="hl-code"> = </span><span class="hl-var">$hours</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Hour(s)</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
      </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$mins</span><span class="hl-brackets">) {
        </span><span class="hl-var">$theText</span><span class="hl-code"> .= </span><span class="hl-quotes">&quot;</span><span class="hl-string">, </span><span class="hl-quotes">&quot;</span><span class="hl-code"> .</span><span class="hl-var">$mins</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Minute(s) </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
      </span><span class="hl-brackets">}
    } </span><span class="hl-reserved">elseif</span><span class="hl-brackets">(</span><span class="hl-var">$mins</span><span class="hl-brackets">) {
      </span><span class="hl-var">$theText</span><span class="hl-code"> = </span><span class="hl-var">$mins</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Minute(s)</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
      </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$secs</span><span class="hl-brackets">) {
        </span><span class="hl-var">$theText</span><span class="hl-code"> .= </span><span class="hl-quotes">&quot;</span><span class="hl-string">, </span><span class="hl-quotes">&quot;</span><span class="hl-code"> .</span><span class="hl-var">$secs</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Second(s) </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
      </span><span class="hl-brackets">}
    } </span><span class="hl-reserved">elseif</span><span class="hl-brackets">(</span><span class="hl-var">$secs</span><span class="hl-brackets">) {
      </span><span class="hl-var">$theText</span><span class="hl-code"> = </span><span class="hl-var">$secs</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> Second(s)</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}
  } </span><span class="hl-reserved">else </span><span class="hl-brackets">{
    </span><span class="hl-var">$theText</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">The countdown is over!</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
  </span><span class="hl-brackets">}

  </span><span class="hl-reserved">return </span><span class="hl-var">$theText</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>This function uses simple math to calculate these values and manipulates them to give you the display.</p>
<p>Here is an example usage for the code:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$testTime</span><span class="hl-code"> = </span><span class="hl-identifier">strtotime</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">next Friday</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-identifier">timeLeft</span><span class="hl-brackets">(</span><span class="hl-var">$testTime</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;

</span><span class="hl-var">$testTime</span><span class="hl-code"> = </span><span class="hl-identifier">strtotime</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">+1 year 1 month 1 week 1 days 1 hours 1 seconds</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-identifier">timeLeft</span><span class="hl-brackets">(</span><span class="hl-var">$testTime</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;

</span><span class="hl-var">$testTime</span><span class="hl-code"> = </span><span class="hl-identifier">mktime</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">m</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">d</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">y</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">))</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-identifier">timeLeft</span><span class="hl-brackets">(</span><span class="hl-var">$testTime</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/28/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dates in this week</title>
		<link>http://www.wlscripting.com/tutorial/27</link>
		<comments>http://www.wlscripting.com/tutorial/27#comments</comments>
		<pubDate>Tue, 01 Aug 2006 00:22:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://wlscripting.com/tutorial/27</guid>
		<description><![CDATA[Get the dates in the current week.]]></description>
			<content:encoded><![CDATA[<p>Finding the days in this week is very easy! If you are creating a calendar script or some kind of billing system you might need this. This code puts all the dates in this week into an array which you can use for whatever output you desire.</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$lowEnd</span><span class="hl-code">=</span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">w</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$lowEnd</span><span class="hl-code">=-</span><span class="hl-var">$lowEnd</span><span class="hl-code">;
</span><span class="hl-var">$highEnd</span><span class="hl-code">=</span><span class="hl-var">$lowEnd</span><span class="hl-code"> + </span><span class="hl-number">6</span><span class="hl-code">;
</span><span class="hl-var">$weekday</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-comment">// Change this to make the Sunday index 1
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">=</span><span class="hl-var">$lowEnd</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">&lt;=</span><span class="hl-var">$highEnd</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">) {
  </span><span class="hl-var">$WeekDate</span><span class="hl-brackets">[</span><span class="hl-var">$weekday</span><span class="hl-brackets">]</span><span class="hl-code">=</span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">m/d</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span><span class="hl-identifier">mktime</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">m</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">  , </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">d</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-var">$i</span><span class="hl-code">, </span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Y</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)))</span><span class="hl-code">;
  </span><span class="hl-var">$weekday</span><span class="hl-code">++;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-identifier">print_r</span><span class="hl-brackets">(</span><span class="hl-var">$WeekDate</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>This will output something like:</p>
<div class="hl-surround" ><div class="hl-main"><pre>Array
(
    [0] =&gt; 07/30
    [1] =&gt; 07/31
    [2] =&gt; 08/01
    [3] =&gt; 08/02
    [4] =&gt; 08/03
    [5] =&gt; 08/04
    [6] =&gt; 08/05
)</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/27/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
