July 10, 200520 yr Hi again, I am in Australia, so all our dates are generally formatted dd/mm/yyyy hh:mm:ss. This is how dates and timestamps appear in my database when using the client version - without any modifications to the format. The file is set to always use current system settings. When I display the same field using fx.php, the date is formatted in the US standard mm/dd/yyyy hh:mm:ss. Is there any way I can show this formatted "correctly"? Cheers, Sean.
July 11, 200520 yr Here is some php to do the conversion: $audate = date('d/m/Y',strtotime('07/11/2005')); Other ways may exist. All the best. Garry
July 19, 200520 yr Author Hi Garry, I've been playing around with this and works perfectly for displaying the date correctly, but I can't work out how I can use it for date inputs. All my users input dates in format d/m/y, and I need to somehow convert that to m/d/y when sending to filemaker. I can then use what you already suggested for displaying the results. I've tried as many things as I can think of, but coming up against a wall... Would you be able to point me in the right direction? Thanks in advance! Sean.
July 25, 200520 yr The safest way to enter dates on the web is by using a calendar (you'll get the same output every time) or using three pulldown menu's: day, month, year. Then of course, help your webusers by entering the right (current) date. Don't trust web users, trust the technology. There's too many ways to enter dates. Edited July 25, 200520 yr by Guest
July 25, 200520 yr Hi, S! I'm not sure how much PHP you do, but you can probably use substr( ) or explode( ) to parse the date string entered and rearrange it before passing it to FM, or you could convert it to unix epoch or yyyymmdd and store it as an integer in FM, but I suppose it depends on what you're doing. Here's a function I use to convert from ymd to mdy that you can probably adapt to do dmy to mdy but you'll have to add stuff to account for leading zeros and range checking so maybe explode( ) would be better. Here it is anyway, though... FUNCTION ymd_to_mdy ($mysqldate) { $year = substr ($mysqldate, 0, 4); $month = substr ($mysqldate, 5, 2); $day = substr ($mysqldate, 8, 2); $mdydate = $month . "-" . $day . "-" . $year; return $mdydate; } --ST
July 27, 200520 yr Here is a Javascript method of inputing a date (you can do a similar thing with PHP) function daylist() { today = new Date(); day = today.getDate(); daydisp = ""; for (i=1; i<32; i++) { if (i == day) { daydisp += '' +i;} else { daydisp += '' +i;}; }; return daydisp; } function monthlist() month = today.getMonth() + 1; monthdisp = ""; for (i=1; i<13; i++) { if (i == month) { monthdisp += '' +i;} else { monthdisp += '' +i;}; }; return monthdisp; } function yearlist() { year = today.getFullYear(); yeardisp = ""; for (i=2005; i<2010; i++) { if (i == year) { yeardisp += '' + i;} else { yeardisp += '' + i;}; }; return yeardisp; } Here is the BODY stuff: Date Serviced: Checked by: Report Date: You can then reorganise the format (with PHP) after the Form is submitted for processing. All the best. Garry
August 14, 200520 yr These calcs help me a lot transferring data to unix, FM, PHP and back... very versatile and complying to PHP standards. Dates are always a problem, this calculation makes it easier. <?php // date calculations ?> <? //array combine (if you dopn't have PHP5, you'll need this too. if (!function_exists('array_combine')) { function array_combine($a1, $a2) { if(count($a1) != count($a2)) return false; if(count($a1) <= 0) return false; $a1 = array_values($a1); $a2 = array_values($a2); $output = array(); for($i = 0; $i < count($a1); $i++) { $output[$a1[$i]] = $a2[$i]; } return $output; }} /* Date calculations Syntax: dateFormat($mydate, 'd/m/y', 'Y-m-d') $mydate = "16/04/02"; echo ('date input: '.$mydate.' -> date output: '.dateFormat($mydate, 'd/m/y', 'Y-m-d')); */ function dateFormat($input_date, $input_format, $output_format) { preg_match("/^([w]*)/i", $input_date, $regs); $sep = substr($input_date, strlen($regs[0]), 1); $label = explode($sep, $input_format); $value = explode($sep, $input_date); $array_date = array_combine($label, $value); if (in_array('Y', $label)) { $year = $array_date['Y']; } elseif (in_array('y', $label)) { $year = $year = $array_date['y']; } else { return false; } $output_date = date($output_format, mktime(0,0,0,$array_date['m'], $array_date['d'], $year)); return $output_date; } ?> Good luck. Hartger
Create an account or sign in to comment