From 7dcbcb707e35c41d11266db7243416f86686dd79 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Wed, 14 Jan 2009 21:25:26 -0500 Subject: [PATCH] added functions to edit hours in hh:mm and save them in decimal --- encode.php | 9 +++++++++ format.php | 36 ++++++++++++++++++++++++++++++++++++ time.php | 2 +- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/encode.php b/encode.php index 94e88d7..57e565c 100644 --- a/encode.php +++ b/encode.php @@ -165,6 +165,15 @@ function enc_mmddyyyyhhmm($seconds) { return date('m/d/Y g:ia', (int)$seconds); } +# takes decimal +# returns hh:mm +function enc_hhmm($str) { + $hours = floor($str); + $minutes = round(($str - $hours) * 60); + $str = sprintf("%d:%02d", $hours, $minutes); + return $str; +} + diff --git a/format.php b/format.php index 0126ada..8035be4 100644 --- a/format.php +++ b/format.php @@ -218,6 +218,42 @@ function format_mdy_to_ymd($str) { return mdy_to_ymd(format_oneline($str)); } +# takes any of: HH :MM HH:MM +# returns decimal number of hours +# +# You probably want to use format_hours() instead because it handles hours with a decimal point. +function format_hours_minutes($str) { + if(strlen($str) == 0) { + return $str; + } + $pos = strpos($str, ':'); + if($pos === false) { + $hours = format_int_0($str); + $minutes = 0; + } elseif($pos == 0) { + $hours = 0; + $minutes = format_int_0($str); + } else { + $hours = format_int_0(substr($str, 0, $pos)); + $minutes = format_int_0(substr($str, $pos + 1)); + } + return $hours + ($minutes / 60.0); +} + +# takes any of: HH :MM HH:MM HH.hh(decimal hours) +# returns decimal number of hours +function format_hours($str) { + if(strlen($str) == 0) { + return $str; + } + if(strpos($str, ':') !== false) { + return format_hours_minutes($str); + } else { + return format_decimal($str); + } +} + + function format_phone($str) { $str = ereg_replace('[^0-9]', '', $str); $str = ereg_replace('^1*', '', $str); diff --git a/time.php b/time.php index cb9e7a8..be2763e 100644 --- a/time.php +++ b/time.php @@ -113,7 +113,7 @@ function ymd_clean($date) { switch(count($parts)) { case 1: $year = $parts[0]; - if(strlen($year) == 0) { + if(strlen($year) == 0 || $year < 1971 || $year > 2050) { list($year, $month, $day) = explode('-', date('Y-m-d')); } else { list($month, $day) = explode('-', date('m-d')); -- 1.7.10.4