search asearch Tag ssearchasearchcsearch searchS Amp vsearchn Amp ssearchnsearchmor Savings2ndmortgage gsearch Tag w Amp Amp T Tag g Tag Savings2ndmortgage sarh Tag Www w Www
e
wsearchesearchrc Amp searchs Savings2ndmortgage S Tag v Www nsearchs Www n Tag m Www rsearchg Savings2ndmortgage g Tag Amp c
s Savings2ndmortgage avi Savings2ndmortgage g Savings2ndmortgage 2 Www d
ortsearchasearche Www a Amp A Savings2ndmortgage p Savings2ndmortgage $GMdateParts;
For those who want the gmgetdate function that matches the behaviour of getdate:
<?php
function gmgetdate($timestamp = null) {}
$dateParts = array(
'mday' => 'j',
'wday' => 'w',
'yday' => 'z',
'mon' => 'n',
'year' => 'Y',
'hours' => 'G',
'minutes' => 'i',
'seconds' => 's',
'weekday' => 'l',
'month' => 'F',
0 => 'U'
);
while (list(, $value) = each($dateParts)) {}
}
return $dateParts;
}
?>
It's worth noting that this is local time, not UTC/GMT - gmgetdate doesn't exist :(.
The most logical way to handle date arithmetic without hitting DST problems is to work in UTC...
<?php
function add_days($my_date,$numdays) {}
?>
[it's even faster if you use gmmktime instead of strtotime]
I thought best to show a posseble way to go about bypassing the end month issue where the first day in a new month will have the monday of the week that it falls in - in the old month. Use the numbering of days as the constant and work you way from there.
Example:
<?php
//-----------------------------
$now = time();
$num = date("w");
if ($num == 0)
{}
else {}
$WeekMon = mktime(0, 0, 0, date("m", $now) , date("d", $now)-$sub, date("Y", $now)); //monday week begin calculation
$todayh = getdate($WeekMon); //monday week begin reconvert
$d = $todayh[mday];
$m = $todayh[mon];
$y = $todayh[year];
echo "$d-$m-$y"; //getdate converted day
?>
Allot less code makes everyone happy..
A nice little function I wrote to determine what number occurrence weekday it is of the month for a given timestamp. (I.e. 2nd Friday, or the 3rd Thursday)
Eg: print_r(getWeekdayOccurrence(mktime(0, 0, 0, 12, 1, 2006)));
Outputs: Array ( [0] => 1 [1] => Friday ) [The first friday]
Eg. print_r(getWeekdayOccurrence(mktime(0, 0, 0, 8, 17, 2009)));
Outputs: Array ( [0] => 3 [1] => Monday ) [The third Monday]
<?php
function getWeekdayOccurrence($time) {}
$posd = array_search(date("l", $time), $days);
$posdm = array_search($days[0], $days) - $posd; /
return array((($day+$posdm+6)/7), $days[$posd]);
}
?>
<?php
/**
* This function is similar to getdate() but it returns
* the month information.
*
* Returns an associative array containing the month
* information of the parameters, or the current month
* if no parameters are given.
*
*/
function getmonth ($month = null, $year = null)
{}
// Output
print_r(getmonth(11, 1978));
print_r(getmonth());
?>
<?php
// This functions calculates the next date only using business days
// 2 parameters, the startdate and the number of businessdays to add
function calcduedate($datecalc,$duedays) {}
$i++;
}
return $datecalc ;
}
?>
getting weekday(actual date) from any give date.
<?php
function cal_date($wday,$tstamp)
{}
function getweekday($m,$d,$y)
{}
$w["day"]=date("d",$wstamp);
$w["month"]=date("m",$wstamp);
$w["year"]=date("Y",$wstamp);
return $w;
}
?>
getdate does not convert week numbers. this function relies on strftime to find a timestamp that falls on the monday of specified year and ISO week:
<?php function getisomonday($year, $week) {} ?>
In addition to canby23 at ms19 post:
It's a very bad idea to consider day having 24 hours (86400 secs), because some days have 23, some - 25 hours due to daylight saving changes. Using of mkdate() and strtotime() is always preferred. strtotime() also has a very nice behaviour of datetime manipulations:
<?php
echo strtotime ("+1 day"), "\n";
echo strtotime ("+1 week"), "\n";
echo strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime ("next Thursday"), "\n";
echo strtotime ("last Monday"), "\n";
?>