Saturday, October 30, 2010

Creating a PHP Countdown Timer

A countdown timer is a useful function that many like to incorporate into their websites; whether you're counting down to a company's product release, or for a personal event that is important to you such as a wedding or birthday.

Function: ‘mktime’

Creating a countdown timer is a simple task that can add a special dimension to any page or site. Countdown timers are used on sites to let the reader know how long it is until the arrival of a special event.
The creation of a countdown timer uses the ‘mktime’ function, a simple way of phrasing a time to create what is known as a ‘timestamp’.
The mktime function is always phrased in a particular sequence – as follows:
Mktime ( hour, minute, second, month, day, year, is_dst)
The first six are self explanatory, while the final is an option and refers to ‘daylight saving time’ and is represented by either a ‘1’ for yes or a ‘0’ for no, or possibly ‘-1’ representing an unknown or a default standard.
If you are really new to PHP, here are some resources for PHP novices.

The Target Date

Let us say our site is about a birthday on 25th September, 2008. We need to specify that as the ‘target’ date as follows:
$target = mktime (0, 0, 0, 9, 25, 2008);
We have left out the DST reference for simplicities sake. Note that the year is a four-digit representation – any two-digit input for year will be interpreted as 2000 onwards from 00 to 69 and 1900 onwards from 70 to 99, hence the advice that four digit years are input.



The Current Date

So, now we have our target date and time, we need to tell the countdown timer what day it is today, and there is a simple function for this:
$today = time () ;
In order for our counter to known how far it has to count, we need to tell it the difference between the target time and now, and again the command is simple:
$difference =($target-$today) ;

Converting from Seconds

It is important to remember that timestamps are measured in seconds, so we need to decide what we are counting down in. A counter can countdown in seconds, minutes, hours or days, and in our example we will aim to countdown in hours.
There are 3600 seconds in an hour, so to convert our timestamp to hours we use the following simple command:
$days =(int) ($difference/3600)
The (int) command is to make sure we are dealing in integers. We now have all of the elements of our timestamp instruction, and it reads as follows:

***<?php
$target = mktime(0, 0, 0, 9, 25, 2008) ;
$today = time () ;
$difference =($target-$today) ;
$days =(int) ($difference/3600) ;
print "My birthday will begin in $days hours";
?>***


No comments:

Post a Comment