2 // Copyright (C) 2010-2014 Rod Roark <rod@sunsetsystems.com>
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 function oeFormatMoney($amount, $symbol = false)
13 $GLOBALS['currency_decimals'],
14 $GLOBALS['currency_dec_point'],
15 $GLOBALS['currency_thousands_sep']
17 // If the currency symbol exists and is requested, prepend it.
18 if ($symbol && !empty($GLOBALS['gbl_currency_symbol'])) {
19 $s = $GLOBALS['gbl_currency_symbol'] . " $s";
25 function oeFormatShortDate($date = 'today', $showYear = true)
27 if ($date === 'today') {
28 $date = date('Y-m-d');
31 if (strlen($date) == 10) {
32 // assume input is yyyy-mm-dd
33 if ($GLOBALS['date_display_format'] == 1) { // mm/dd/yyyy, note year is added below
34 $newDate = substr($date, 5, 2) . '/' . substr($date, 8, 2);
35 } else if ($GLOBALS['date_display_format'] == 2) { // dd/mm/yyyy, note year is added below
36 $newDate = substr($date, 8, 2) . '/' . substr($date, 5, 2);
39 // process the year (add for formats 1 and 2; remove for format 0)
40 if ($GLOBALS['date_display_format'] == 1 ||
$GLOBALS['date_display_format'] == 2) {
42 $newDate .= '/' . substr($date, 0, 4);
44 } else if (!$showYear) { // $GLOBALS['date_display_format'] == 0
45 // need to remove the year
46 $newDate = substr($date, 5, 2) . '-' . substr($date, 8, 2);
47 } else { // $GLOBALS['date_display_format'] == 0
48 // keep the year (so will simply be the original $date)
55 // this is case if the $date does not have 10 characters
59 // 0 - Time format 24 hr
60 // 1 - Time format 12 hr
61 function oeFormatTime($time, $format = "")
65 $format = $GLOBALS['time_display_format'];
69 $formatted = date("H:i", strtotime($time));
70 } else if ($format == 1) {
71 $formatted = date("g:i a", strtotime($time));
77 // Format short date from time.
78 function oeFormatSDFT($time)
80 return oeFormatShortDate(date('Y-m-d', $time));
83 // Format the body of a patient note.
84 function oeFormatPatientNote($note)
87 while ($i !== false) {
88 if (preg_match('/^\d\d\d\d-\d\d-\d\d/', substr($note, $i))) {
89 $note = substr($note, 0, $i) . oeFormatShortDate(substr($note, $i, 10)) . substr($note, $i +
10);
92 $i = strpos("\n", $note, $i);
101 function oeFormatClientID($id)
108 //----------------------------------------------------
109 function DateFormatRead($mode = 'legacy')
111 //For the 3 supported date format,the javascript code also should be twicked to display the date as per it.
112 //Output of this function is given to 'ifFormat' parameter of the 'Calendar.setup'.
113 //This will show the date as per the global settings.
114 if ($GLOBALS['date_display_format']==0) {
115 if ($mode == 'legacy') {
117 } else { //$mode=='jquery-datetimepicker'
120 } else if ($GLOBALS['date_display_format']==1) {
121 if ($mode == 'legacy') {
123 } else { //$mode=='jquery-datetimepicker'
126 } else if ($GLOBALS['date_display_format']==2) {
127 if ($mode == 'legacy') {
129 } else { //$mode=='jquery-datetimepicker'
135 function DateToYYYYMMDD($DateValue)
137 //With the help of function DateFormatRead() now the user can enter date is any of the 3 formats depending upon the global setting.
138 //But in database the date can be stored only in the yyyy-mm-dd format.
139 //This function accepts a date in any of the 3 formats, and as per the global setting, converts it to the yyyy-mm-dd format.
140 if (trim($DateValue)=='') {
144 if ($GLOBALS['date_display_format']==0) {
146 } else if ($GLOBALS['date_display_format']==1 ||
$GLOBALS['date_display_format']==2) {
147 $DateValueArray=explode('/', $DateValue);
148 if ($GLOBALS['date_display_format']==1) {
149 return $DateValueArray[2].'-'.$DateValueArray[0].'-'.$DateValueArray[1];
152 if ($GLOBALS['date_display_format']==2) {
153 return $DateValueArray[2].'-'.$DateValueArray[1].'-'.$DateValueArray[0];
158 // Returns age in a desired format:
159 // 0 = "xx month(s)" if < 2 years, else years
160 // 1 = Years : just a number
161 // 2 = Months : just a number
162 // 3 = Gestational: "xx week(s) y day(s)"
163 // $dobYMD is YYYYMMDD or YYYY-MM-DD
164 // $nowYMD is same format but optional
166 function oeFormatAge($dobYMD, $nowYMD = '', $format = 0)
168 // Strip any dashes from the dates.
169 $dobYMD = preg_replace('/-/', '', $dobYMD);
170 $nowYMD = preg_replace('/-/', '', $nowYMD);
171 $dobDay = substr($dobYMD, 6, 2);
172 $dobMonth = substr($dobYMD, 4, 2);
173 $dobYear = substr($dobYMD, 0, 4);
176 $nowDay = substr($nowYMD, 6, 2);
177 $nowMonth = substr($nowYMD, 4, 2);
178 $nowYear = substr($nowYMD, 0, 4);
181 $nowMonth = date("m");
182 $nowYear = date("Y");
186 // Gestational age as weeks and days.
187 $secs = mktime(0, 0, 0, $nowMonth, $nowDay, $nowYear) -
188 mktime(0, 0, 0, $dobMonth, $dobDay, $dobYear);
189 $days = intval($secs / (24 * 60 * 60));
190 $weeks = intval($days / 7);
192 $age = "$weeks " . ($weeks == 1 ?
xl('week') : xl('weeks')) .
193 " $days " . ($days == 1 ?
xl('day') : xl('days'));
196 $dayDiff = $nowDay - $dobDay;
197 $monthDiff = $nowMonth - $dobMonth;
198 $yearDiff = $nowYear - $dobYear;
199 $ageInMonths = $yearDiff * 12 +
$monthDiff;
204 if ($format == 1 ||
($format == 0 && $ageInMonths >= 24)) {
206 if ($monthDiff < 0 ||
($monthDiff == 0 && $dayDiff < 0)) {
212 $age .= ' ' . $ageInMonths == 1 ?
xl('month') : xl('months');