• 2
  • 3
2011-06-20, 16:39
  #25
Medlem
isnisns avatar
Citat:
Ursprungligen postat av Mattias3232
1991-12-13, har för mig (inte kollat på ett tag) att det är ett date-fält.

yyyy-mm-dd hh:mm:ss är standard date-time formatet i MySQL ISAM motorn.

Visst kan man köra $foo - $bar
Citera
2011-06-20, 18:53
  #26
Medlem
z0mfg(ish)s avatar
Citat:
Ursprungligen postat av isnisn
yyyy-mm-dd hh:mm:ss är standard date-time formatet i MySQL ISAM motorn.
Men ett dob borde enbart vara date, vilket är yyyy-mm-dd, som går att stoppa rakt in i funktionen som postades nån sida bak i tråden.
Citera
2011-06-21, 14:36
  #27
Medlem
isnisns avatar
Citat:
Ursprungligen postat av z0mfg(ish)
Men ett dob borde enbart vara date, vilket är yyyy-mm-dd, som går att stoppa rakt in i funktionen som postades nån sida bak i tråden.

Absolut, splitta upp det i en array och lite matematik så kan du få ut exakt ålder
Citera
2011-06-21, 18:29
  #28
Medlem
Citat:
Ursprungligen postat av isnisn
Absolut, splitta upp det i en array och lite matematik så kan du få ut exakt ålder

Vill inte ha något exakt ålder, endast hur gammal personen är.
Citera
2011-06-21, 20:20
  #29
Medlem
tja jag är ju också ny på PHP men fixa lite med det.
Kod:
$nowdate date("Y");
        
#$nowdate = '1991';
        
        
$uid $_SESSION[' xxxx '];
        
$result mysql_query("SELECT created FROM XXX  WHERE XXX='{$uid}' "$link);
        list(
$date) = mysql_fetch_row($result); 
        
$date substr($date04);  
        
        echo 
"Created year of user" $date;
        
        
$nowdateint = (int)$nowdate;
        
$dateint = (int)$date;
        
        echo 
"<br>" $nowdateint;
        echo 
"<br>" $dateint;
        
        
$age $dateint-$nowdateint;
        
        echo 
"<br>" "Age: " $age
Citera
2011-06-21, 20:39
  #30
Medlem
z0mfg(ish)s avatar
Citat:
Ursprungligen postat av estone
tja jag är ju också ny på PHP men fixa lite med det.
Kod:
$nowdate date("Y");
        
#$nowdate = '1991';
        
        
$uid $_SESSION[' xxxx '];
        
$result mysql_query("SELECT created FROM XXX  WHERE XXX='{$uid}' "$link);
        list(
$date) = mysql_fetch_row($result); 
        
$date substr($date04);  
        
        echo 
"Created year of user" $date;
        
        
$nowdateint = (int)$nowdate;
        
$dateint = (int)$date;
        
        echo 
"<br>" $nowdateint;
        echo 
"<br>" $dateint;
        
        
$age $dateint-$nowdateint;
        
        echo 
"<br>" "Age: " $age
Men du är du alltid 20 om du är född 1991 detta år. Men låt säga att du fyller år sista december, då är du fortfarande 19 ett bra tag, men den där funktionen visar ju fel.

Dessutom skulle du kunna göra SELECT YEAR(created)... i ditt exempel, fast det skulle fortfarande inte bli exakt.

Nej, välj ut hela datumet och stoppa in i funktionen som postats tidigare i tråden, et voila.

TS: Har du ens testat? Du säger att du vill ha ut åldern och vi har gjort allt vi kan för att du ska kunna stoppa in det i din egen kod - har du försökt? Har du någon kod att visa som felar, om det nu är problemet.
Citera
2011-06-21, 21:05
  #31
Medlem
Citat:
Ursprungligen postat av z0mfg(ish)
Men du är du alltid 20 om du är född 1991 detta år. Men låt säga att du fyller år sista december, då är du fortfarande 19 ett bra tag, men den där funktionen visar ju fel.

Dessutom skulle du kunna göra SELECT YEAR(created)... i ditt exempel, fast det skulle fortfarande inte bli exakt.

Nej, välj ut hela datumet och stoppa in i funktionen som postats tidigare i tråden, et voila.

TS: Har du ens testat? Du säger att du vill ha ut åldern och vi har gjort allt vi kan för att du ska kunna stoppa in det i din egen kod - har du försökt? Har du någon kod att visa som felar, om det nu är problemet.

Just nu försöker jag endast förstå hur det funkar, för att sedan lätt stoppa in den och själv lösa felet (om det blir något). Håller på att läsa lite om detta här och där
Citera
2011-06-21, 22:25
  #32
Medlem
z0mfg(ish)s avatar
Kod:
function GetAge($Birthdate)
{
        
// Explode the date into meaningful variables
        
list($BirthYear,$BirthMonth,$BirthDay) = explode("-"$Birthdate);
        
// Find the differences
        
$YearDiff date("Y") - $BirthYear;
        
$MonthDiff date("m") - $BirthMonth;
        
$DayDiff date("d") - $BirthDay;
        
// If the birthday has not occured this year
        
if ($DayDiff || $MonthDiff 0)
          
$YearDiff--;
        return 
$YearDiff;
}

// du är redan ansluten till databasen säger vi

$sql "SELECT * FROM people";
$result mysql_query($sql);

while(
$row=mysql_fetch_array($result,MYSQL_ASSOC))
{
     
$age GetAge($row['date_of_birth']);
     echo 
$row['name']." är ".$age." år gammal<br />";


Något i den stilen då...
Citera
2011-06-21, 23:00
  #33
Medlem
Kod:
SELECT FLOOR(DATEDIFF(CURDATE(), dob_column)/365.25) FROM table

Används med försiktighet då pålitligheten brister lite p.g.a. skottår.
__________________
Senast redigerad av Frited 2011-06-21 kl. 23:20.
Citera
2011-06-22, 13:48
  #34
Medlem
xid0ns avatar
Citat:
Ursprungligen postat av xid0n
Fulväg om du inte har date_diff etc:
Kod:
<?php
    $dob 
'1991-06-18';
    
$date date('Y'time() - strtotime($dob))-1970;
    echo 
$date;
?>

$dob = Födelsedatumet
$date = Hämta ut år ('Y') och som timestamp använda nuvarande tid - födelsedatumet - 1970 (annars får vi 1970+antal år du är)

Gillar f.ö. friteds lösning men det går att göra den snabbare / säkrare.

SQL:
Kod:
SELECT TIMESTAMPDIFFYEARdobnow()) 
__________________
Senast redigerad av xid0n 2011-06-22 kl. 13:53.
Citera
  • 2
  • 3

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in