"H",
"minute" => "i",
"second" => "s",
"month" => "m",
"day" => "d",
"year" => "Y"
);
static public function differenceBetweenDates($firstDateStamp, $secondDateStamp) {
$firstDate = new DateTime(date(self::FORMAT_DEFAULT, $firstDateStamp));
$secondDate = new DateTime(date(self::FORMAT_DEFAULT, $secondDateStamp));
$dateUnits = self::$DATE_UNITS;
$differenceArray = array();
foreach($dateUnits as $dateUnit)
$differenceArray[$dateUnit] = $firstDate->diff($secondDate, true)->format("%".$dateUnit);
return $differenceArray;
}
static public function getDateTimestamp($date)
{
$parsedDate = date_parse($date);
return mktime(
$parsedDate["hour"],
$parsedDate["minute"],
$parsedDate["second"],
$parsedDate["month"],
$parsedDate["day"],
$parsedDate["year"]
);
}
static public function getDayOfWeek($timestamp) {
$weekDay = getdate($timestamp)["wday"];
return $weekDay;
}
static public function addDate($timestamp, $unit, $count) {
$dateUnits = self::$DATE_UNITS;
$units = array(
$dateUnits["hour"],
$dateUnits["minute"],
$dateUnits["second"],
$dateUnits["month"],
$dateUnits["day"],
$dateUnits["year"]
);
$args = array();
for($i = 0; $i < count($units); $i++){
$time_part = $units[$i];
$param = date($time_part, $timestamp);
if($unit == $time_part)
$param += $count;
array_push($args, $param);
}
return call_user_func_array("mktime", $args);
}
static public function addDays($timestamp, $count) {
return self::addDate($timestamp, self::$DATE_UNITS["day"], $count);
}
static public function addWeeks($timestamp, $count) {
return self::addDate($timestamp, self::$DATE_UNITS["day"], ($count * self::DAYS_IN_WEEK));
}
static public function addMonths($timestamp, $count) {
return self::addDate($timestamp, self::$DATE_UNITS["month"], $count);
}
static public function addYears($timestamp, $count) {
return self::addDate($timestamp, self::$DATE_UNITS["year"], $count);
}
}