It is best to save time and date as a unix timestamp rather than other formats.
I created a class to handle date and time in php. Its easy to use and very useful.
<?php define("NEW_LINE", "</BR>"); class scTimestamp { private $timestamp; private $year; private $month; private $day; private $hour; private $minute; private $second; public function __construct() { register_shutdown_function(array($this,'__destruct')); $this->setTimestamp($_SERVER['REQUEST_TIME']); } public function __destruct() { unset($this->timestamp); unset($this->year); unset($this->month); unset($this->day); unset($this->hour); unset($this->minute); unset($this->second); } private function rebuildTimestampFromDate() { $this->timestamp=mktime($this->hour,$this->minute,$this->second,$this->month,$this->day,$this->year); } private function rebuildDateFromTimestamp() { $this->day=date('j',$this->timestamp); $this->month=date('n',$this->timestamp); $this->year=date('Y',$this->timestamp); $this->hour=date('g',$this->timestamp); $this->minute=date('G',$this->timestamp); $this->second=date('s',$this->timestamp); } public function setTimestamp($tempTimestamp) { $this->timestamp=$tempTimestamp; $this->rebuildDateFromTimestamp(); } public function getTimestamp() { return $this->timestamp; } public function setYear($tempYear) { $this->year = $tempYear; $this->rebuildTimestampFromDate(); } public function getYear() { return $this->year; } public function setMonth($tempMonth) { $this->month = $tempMonth; $this->rebuildTimestampFromDate(); } public function getMonth() { return $this->month; } public function setDay($tempDay) { $this->day=$tempDay; $this->rebuildTimestampFromDate(); } public function getDay() { return $this->day; } public function setHour($tempHour) { $this->hour = $tempHour; $this->rebuildTimestampFromDate(); } public function getHour() { return $this->hour; } public function setMinute($tempMinute) { $this->minute = $tempMinute; $this->rebuildTimestampFromDate(); } public function getMinute() { return $this->minute; } public function setSecond($tempSecond) { $this->second = $tempSecond; $this->rebuildTimestampFromDate(); } public function getSecond() { return $this->second; } public function getDateDifferenceFromNow() { return $this->getDateDifferenceFrom($_SERVER['REQUEST_TIME']); } public function getDateDifferenceFrom($fromDate) { $return=""; $sec=" Second"; $min=" Minute"; $hrs=" Hour"; $before=" Before"; $difference=$fromDate-$this->getTimestamp(); if($difference<0) $return.="In the Future"; else if($difference<60) { if($difference>1) $sec.="s"; $return.= $difference.$sec.$before; } else if($difference<3600) { $difference=intval($difference/60); if($difference>1) $min.="s"; $return.=$difference.$min.$before; } else if($difference<86400) { $difference=intval($difference/3600); if($difference>1) $hrs.="s"; $return= $difference.$hrs.$before; } else if($difference<604800) { $return.= date("lg:ia",$this->getTimestamp()); } else if($difference<28512000) { $return.= date("F j",$this->getTimestamp()); } else { $return.= date("F j, Y, g:ia",$this->getTimestamp()); } return $return; } public function getDateAsString() { return date("F j, Y",$this->getTimestamp()); } public function getDateTimeAsString() { return date("F j, Y, g:ia",$this->getTimestamp()); } public function __toString() { $return = NEW_LINE."^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"; $return.= NEW_LINE." ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^".NEW_LINE; $return.= NEW_LINE."@@ Timestamp: ".$this->getTimestamp()." @@".NEW_LINE; $return.= NEW_LINE."@@ Date: ".$this->getDateTimeAsString()." @@".NEW_LINE; $return.= NEW_LINE." ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^".NEW_LINE; return $return; } } ?>
after its inclusion it can be used as follows
include_once("scTimestamp.php"); $test=new scTimestamp(); echo $test->getDateAsString(); $test->setTimestamp(1210203200); echo $test->getDateDifferenceFromNow(); echo $test; $test->setTimestamp(121020320022); echo $test->getYear(); echo $test;
And the result will be pleasant.
June 26, 2015 May 7, 2008, 23:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ @@ Timestamp: 1210203200 @@ @@ Date: May 7, 2008, 11:33 pm @@ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 5804 ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ Time mark: 121020320022 @@ @ @ Date: December 25, 5804, 3:33 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
This class can be used as needed.