Version: 2.02 & 3.23.32
Type: Sample Code (HOWTO)
Category: Calendars/Dates
License: GNU General Public License
Description: This is my first posting to PHP Builder. I was in need of a date calculation snippet that would just add a the number: 30,60,90, or 120 to a date. With help from Sams publishing: "PHP and MySQL" this is what I came up with.
//---------------------------------------------------------------\\
Function: Return an expiration date based on length of service.
//---------------------------------------------------------------\\
First we need our date from our database in timestamp form:
** Please note that your mysql recordset return object will be different **
SQL:
"SELECT UNIX_TIMESTAMP(date_field) as ts, duration FROM memberships"
Now we convert this timestamp into a date
(only necessary if we want to display the original date):
/* part one */
// get timestamp from recordset result
$date_time_array = getdate($hashish['ts']);
// get parts
$month = $date_time_array["mon"];
$day = $date_time_array["mday"];
$year = $date_time_array["year"];
// format
$formatted_date = $month."/".$day."/".$year;
// -----------------------------------------------------------\\
/* part two */
// create calculated timestamp using our duration value
// returned from our recordset.
$getts = mktime("","","",$month,$day + $hashish['duration'],$year);
// using the new timestamp get a date array
$add_dt_array = getdate($getts);
// get parts
$month = $add_dt_array["mon"];
$day = $add_dt_array["mday"];
$year = $add_dt_array["year"];
// format
$end_date = $month."/".$day."/".$year;
// This will return: 1/2/2002 with the date 11/3/2001
// and adding a duration of 60 days.
// We can expand on this by using other time/date calculations,
// but if we want to just perform simple arithmatic on dates this will do.