the code is a bit crufty, but this should fix issue #687

This commit is contained in:
friendica 2014-11-11 01:05:29 -08:00
parent 0a84b45793
commit 325b269b22
3 changed files with 27 additions and 4 deletions

View file

@ -134,10 +134,17 @@ function dob($dob) {
if(! $f)
$f = 'ymd';
if ($dob && $dob != '0000-00-00')
$o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),mktime(0,0,0,$month,$day,$year),'dob');
if($dob === '0000-00-00')
$value = '';
else
$o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),false,'dob');
$value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d'));
$o = '<input type="text" name="dob" value="' . $value . '" placeholder="' . t('YYYY-MM-DD or MM-DD') . '" />';
// if ($dob && $dob != '0000-00-00')
// $o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),mktime(0,0,0,$month,$day,$year),'dob');
// else
// $o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),false,'dob');
return $o;
}

View file

@ -234,6 +234,22 @@ function profiles_post(&$a) {
}
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
$y = substr($dob,0,4);
if((! ctype_digit($y)) || ($y < 1900))
$ignore_year = true;
else
$ignore_year = false;
if($dob != '0000-00-00') {
if(strpos($dob,'0000-') === 0) {
$ignore_year = true;
$dob = substr($dob,5);
}
$dob = datetime_convert('UTC','UTC',(($ignore_year) ? '1900-' . $dob : $dob),(($ignore_year) ? 'm-d' : 'Y-m-d'));
if($ignore_year)
$dob = '0000-' . $dob;
}
$name = escape_tags(trim($_POST['name']));

View file

@ -1 +1 @@
2014-11-10.855
2014-11-11.856