---
title: "Lagra ålder för personer födda tidigare än 1970"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/132573-lagra-ålder-för-personer-födda-tidigare-än-1970"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "lillebror"
published: "2005-08-10T18:49:46.000Z"
updated: "2005-08-11T09:28:45.000Z"
replies: 7
views: 393
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/132573-lagra-ålder-för-personer-födda-tidigare-än-1970"
---

# Lagra ålder för personer födda tidigare än 1970

## #1 — lillebror, 2005-08-10T18:49Z

Har insett att jag använder fel datatyp i min mysql-databas när jag lagrar date-of-birth för en person. Den datatyp jag använder nu är **date**. Men den tillåter bara personer att vara 35 år gamla och det håller ju inte.

Vilken datatyp ska jag använda mig av istället?

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

## #2 — Matte, 2005-08-10T20:24Z

DATE går alldeles utmärkt all lagra äldre datum i.

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

## #3 — b3rra, 2005-08-10T20:44Z

DATE 
A date. The supported range is '1000-01-01' to '9999-12-31'. MySQL displays DATE values in 'YYYY-MM-DD' format, but allows you to assign values to DATE columns using either strings or numbers. 

<http://dev.mysql.com/doc/mysql/en/date-and-time-type-overview.html>

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

## #4 — lillebror, 2005-08-11T08:43Z

Tack för tipsen.

I mitt fall kan det nog vara så att det går utmärkt att använda DATE för lagring i databasen men att det är så att den funktion jag har som räknar ut en persons aktuella ålder baserat på date-of-birth ställer till det. Jag vet att den har gett mig felmeddelanden när en person överskrider 1970. Vet inte riktigt om det finns en sådan begränsning i funktionen. 

Så här ser funktionen ut iaf:

```
function age($birthdate) {
  $ts = getdate(strtotime($birthdate));
  $te = getdate(time());
  return $te['year'] - $ts['year'] - (($te['mon'] < $ts['mon'])
   || (($te['mon'] == $ts['mon']) && ($te['mday'] < $ts['mday'])));
}
```

När en person går från att vara född 1970 till 1969 så får jag följande felmeddelande i användarprofilen som visas på sidan:

```
Warning: getdate() [function.getdate]: Cannot perform date calculation in C:\xxx
```

Ligger det någon begränsning i funktionen getdate() för vad den klarar att ta emot?! :OO

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

## #5 — @nders, 2005-08-11T08:54Z

> Ligger det någon begränsning i funktionen getdate() för vad den klarar att ta emot?!

Om webbservern är en Windowsserver så är det dessvärre så att php-tolken inte kan hantera datum tidigare än 1970 med de befintliga funktionerna.

<http://se.php.net/manual/en/function.date.php>

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

## #6 — lillebror, 2005-08-11T09:00Z

:(

Det jag vet är att jag har mitt serverutrymme på en "FreeBSD-server - Obelix" hos Aleborg. Jag har trott att de kör en linuxversion på den servern. Men det kanske inte är fallet?

Om inte denna metod att ta reda på en persons ålder fungerar kanske någon annan har en likvärdig funktion?

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

## #7 — Gislaved, 2005-08-11T09:14Z

Rent spontant ser det ut som om du ligger på en Windowsserver från ditt felmeddelande. 

> C:\\xxx

Men hör av dig till Aleborg och fråga, det brukar inte vara svårt att få svar därifrån.

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

## #8 — lillebror, 2005-08-11T09:28Z

Ska göra det!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/132573-lagra-ålder-för-personer-födda-tidigare-än-1970
