Home >> Snippet List >> Snippet

Name
Awesome Date Time Conversion Kit
Description
Awesome Mysql date-time converter kit Real-life functions you can call to perform common date/time conversions between MySQL datetime format, MySQL timestamp format and UNIX timestamp (ie seconds after epoch) with "human" output
PHP Snippet
<?PHP 
 
//we use UNIX's time specification as the base specification 
 
        FUNCTION mysql_datetime_to_human($dt){ 
                $yr=STRVAL(SUBSTR($dt,0,4)); 
                $mo=STRVAL(SUBSTR($dt,5,2)); 
                $da=STRVAL(SUBSTR($dt,8,2)); 
                $hr=STRVAL(SUBSTR($dt,11,2)); 
                $mi=STRVAL(SUBSTR($dt,14,2)); 
//              $se=strval(substr($dt,17,2)); 
 
                RETURN DATE("M/d/Y H:i", MKTIME ($hr,$mi,0,$mo,$da,$yr))." MST"; 
        } 
 
        FUNCTION mysql_timestamp_to_human($dt){ 
 
                $yr=STRVAL(SUBSTR($dt,0,4)); 
                $mo=STRVAL(SUBSTR($dt,4,2)); 
                $da=STRVAL(SUBSTR($dt,6,2)); 
                $hr=STRVAL(SUBSTR($dt,8,2)); 
                $mi=STRVAL(SUBSTR($dt,10,2)); 
                //$se=strval(substr($dt,12,2)); 
 
                RETURN DATE("M/d/Y H:i", MKTIME ($hr,$mi,0,$mo,$da,$yr))." MST"; 
        } 
 
        FUNCTION mysql_timestamp_to_timestamp($dt){ 
                $yr=STRVAL(SUBSTR($dt,0,4)); 
                $mo=STRVAL(SUBSTR($dt,4,2)); 
                $da=STRVAL(SUBSTR($dt,6,2)); 
                $hr=STRVAL(SUBSTR($dt,8,2)); 
                $mi=STRVAL(SUBSTR($dt,10,2)); 
                $se=STRVAL(SUBSTR($dt,10,2)); 
 
                RETURN MKTIME($hr,$mi,$se,$mo,$da,$yr); 
        } 
 
        FUNCTION mysql_datetime_to_timestamp($dt){ 
                $yr=STRVAL(SUBSTR($dt,0,4)); 
                $mo=STRVAL(SUBSTR($dt,5,2)); 
                $da=STRVAL(SUBSTR($dt,8,2)); 
                $hr=STRVAL(SUBSTR($dt,11,2)); 
                $mi=STRVAL(SUBSTR($dt,14,2)); 
                $se=STRVAL(SUBSTR($dt,17,2)); 
 
                RETURN MKTIME($hr,$mi,$se,$mo,$da,$yr); 
        } 
 
        FUNCTION timestamp_to_mysql($ts){ 
                $d=GETDATE($ts); 
 
                $yr=$d["year"]; 
                $mo=$d["mon"]; 
                $da=$d["mday"]; 
                $hr=$d["hours"]; 
                $mi=$d["minutes"]; 
                $se=$d["seconds"]; 
 
                RETURN SPRINTF("%04d%02d%02d%02d%02d%02d",$yr,$mo,$da,$hr,$mi,$se); 
        } 
 
 
FUNCTION timeleft($begin,$end){ 
        // for two timestamp format dates, returns the plain 
        // English difference between them. 
        // note these dates are UNIX timestamps 
 
        $dif=$end-$begin; 
 
        $years=INTVAL($dif/(60*60*24*365)); 
        $dif=$dif-($years*(60*60*24*365)); 
 
        $months=INTVAL($dif/(60*60*24*30)); 
        $dif=$dif-($months*(60*60*24*30)); 
 
        $weeks=INTVAL($dif/(60*60*24*7)); 
        $dif=$dif-($weeks*(60*60*24*7)); 
 
        $days=INTVAL($dif/(60*60*24)); 
        $dif=$dif-($days*(60*60*24)); 
 
        $hours=INTVAL($dif/(60*60)); 
        $dif=$dif-($hours*(60*60)); 
 
        $minutes=INTVAL($dif/(60)); 
        $seconds=$dif-($minutes*60); 
 
        $s=""; 
 
        //if ($years<>0) $s.= $years." years "; 
        //if ($months<>0) $s.= $months." months "; 
        IF ($weeks<>0) $s.= $weeks." weeks "; 
        IF ($days<>0) $s.= $days." days "; 
        IF ($hours<>0) $s.= $hours." hours "; 
        IF ($minutes<>0) $s.= $minutes." minutes "; 
        //if ($seconds<>0) $s.= $seconds." seconds "; 
 
        RETURN $s; 
} 
 
?>