---
title: "Ålder function"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/57023-ålder-function"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Webslave"
published: "2002-10-25T00:20:44.000Z"
updated: "2002-10-25T21:28:36.000Z"
replies: 4
views: 280
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/57023-ålder-function"
---

# Ålder function

## #1 — Webslave, 2002-10-25T00:20Z

Denna koda har jag knåpat ihop och den fungerar fint förutom när det gäller valet av månad... då vill den inte visa rätt.

```php
<?PHP
$year = substr($row['user_age'],0,4);
$mon = substr($row['user_age'],5,2);
$day = substr($row['user_age'],8,2);
?>
<select name="update_age_year" class="form_select">
<option value="0000"<?PHP
if($year==0000){
  echo " selected";
}
  ?>>År</option>
<?PHP
$year_start = date("Y");
$year_end = 1960;
for($i=$year_start;$i>=$year_end;$i--){
  ?>
  <option value="<?=$i?>"<?PHP
  if($year==$i){
    echo " selected";
  }
  ?>><?=$i?></option>
  <?PHP
}
?>
</select>
<select name="update_age_month" class="form_select">
<option value="00"<?PHP
  if($mon==00){
    echo " selected";
  }
  ?>>Månad</option>
<?PHP
$month=array("Jan"=>01,"Feb"=>02,"Mars"=>03,"Apr"=>04,"Maj"=>05,"Juni"=>06,"Juli"=>07,"Aug"=>08,"Sept"=>09,"Okt"=>10,"Nov"=>11,"Dec"=>12);

foreach($month as $key=> $val){
  ?>
  <option value="<?=$val?>" <?PHP
  if('$mon'=='$val'){
    echo "selected";
  }
  ?>><?=$key?></option>
  <?PHP
}
?>
</select>
<select name="update_age_day" class="form_select">
<option value="00"<?PHP
  if($day==00){
    echo " selected";
  }
  ?>>Dag</option>
<?PHP
$day_start = 01;
$day_stop = 31;
for($i=$day_start;$i<=$day_stop;$i++){
  ?>
  <option value="<?PHP
  if(strlen($i)<2){
    echo '0';
  }
  echo $i;
  ?>"<?PHP
  if(substr($row['user_age'],8,2)==$i){
    echo " selected";
  }
  ?>><?=$i?></option>
  <?PHP
}
?>
```

$row\['user_age'\] ser ut så här:
yyyy-mm-dd hh:mm:ss (det sista är för att jag har en function som räknar om detta till ålder i år och då behöver den tydligen timmar osså, fast de är alla = 0)

Kan någon se något som är alldeles galet? Jag är för trött för det själv nu och behöver lite experthjälp ;)

Permalänk: https://www.webforum.nu/p/57023

## #2 — Mungo, 2002-10-25T11:45Z

Tveksamt om det är den hjälp du söker, men jag lagrar iaf alltid datum och tid i TIMESTAMP-format istället, och sen har jag skrivit följande funktion för att ta ut det jag vill:

```php
function mysqldate_format($datum, $format) {
	$lang_monthname = array("Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec");
	$year = substr($datum, 0, 4);
	$smallyear = substr($datum, 2, 2);
	$month = substr($datum, 4, 2);
	$day = substr($datum, 6, 2);
	$hour = substr($datum, 8, 2);
	$minutes = substr($datum, 10, 2);
	$seconds = substr($datum, 12, 2);
	$format = ereg_replace("YYYY", $year, $format);
	$format = ereg_replace("yy", $smallyear, $format);
	$format = ereg_replace("MM", $month, $format);
	$format = ereg_replace("DD", $day, $format);
	$format = ereg_replace("hh", $hour, $format);
	$format = ereg_replace("mm", $minutes, $format);
	$format = ereg_replace("ss", $seconds, $format);
	$format = ereg_replace("MN", $lang_monthname[$month-1], $format);
	return $format;
	}
```

Så ditt fall skulle:

```php
echo mysqldate_format($row['user_age'], 'MM');
```

...skriva ut endast månadens nummer från ett TIMESTAMP-värde.

Följande nycklar finns till formatet:

YYYY : 4-siffrigt år
yy : 2-siffrigt år
MM : 2-siffrig månad
DD : 2-siffrig dag
hh : 24-timmars timme
mm : minuter
ss : sekunder
MN : Månadsnamn

Permalänk: https://www.webforum.nu/p/834851

## #3 — Webslave, 2002-10-25T14:05Z

Nope, det gör det inte. Jag frågade om hjälp med min kod inte leta nya koder. Men tack i alla fall ;)

Permalänk: https://www.webforum.nu/p/834911

## #4 — Matte, 2002-10-25T17:20Z

$mon är en sträng. Då borde det vara lämpligt att ha strängar i arrayen för din jämförelse:

```
$month=array("Jan"=>"01", "Feb"=>"02", "Mars"=>"03" , "Apr"=>"04", "Maj"=>"05", "Juni"=>"06", "Juli"=>"07", "Aug"=>"08", "Sept"=>"09", "Okt"=>"10", "Nov"=>"11", "Dec"=>"12");

foreach($month as $key=> $val){
  ?>
  <option value="<?=$val?>" <?PHP
  if($mon==$val){
    echo "selected";
  }
  ?>><?=$key?></option>
  <?PHP
}
```

Permalänk: https://www.webforum.nu/p/835001

## #5 — Webslave, 2002-10-25T21:28Z

Tackar Matte, jag kom på det och körde med =\>'01' istället... fungerar perfekt nu ;)

Permalänk: https://www.webforum.nu/p/835146

---

Tråden på webben: https://www.webforum.nu/amne/php/57023-ålder-function
