Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Jahresdifferenz zwischen zwei Datumsangaben

Frage Entwicklung PHP

Mitglied: simon-ni

simon-ni (Level 1) - Jetzt verbinden

13.03.2013, aktualisiert 14.03.2013, 1866 Aufrufe, 5 Kommentare

Hallo,

ich hoffe Ihr könnt mir eine kurze Antwort geben, da mein PHP ist leider nicht gut genug, um die Beispiele zu verstehen die ich bei Google finde, wäre ich über eure Hilfe dankbar.


Ich habe ein Datum aus einer Datenbank und das aktuelle Datum. Das Datum in der Datenbank ist im Format wie unten $datum1 abgelegt.

Für eine Abfrage brächte ich die Differenz in Jahren, die einen Wert von 0,1,2,... entspricht.

01.
  
02.
 
03.
$datum1 = "01.01.2012";  
04.
$datum2 = date('d.m.Y'); 
05.
 

Über eine Antwort würde ich mich freuen.

Viele Grüße
Nico
Mitglied: Guenni
13.03.2013 um 10:55 Uhr
Hi simon-ni,

du wandelst das Datum mit strtotime in einen Zeitstempel um, und übergibst diesen als zweites Argument an date,

wobei der Formatstring in date nur das "Y" für die Jahreszahl enthält.

01.
<?php 
02.
$jahr_alt = date("Y", strtotime("01.01.2002")); 
03.
$jahr_neu = date("Y"); 
04.
$differenz = $jahr_neu - $jahr_alt
05.
echo $differenz
06.
?>

Gruß
Günni

PS.: Hier -> http://php.net/manual/de/index.php findest du zu allen Funktionen verständliche Beispiele
Bitte warten ..
Mitglied: MrNetman
13.03.2013 um 10:58 Uhr
Hi Nico,

es gibt noch einen kleine Unterschied:
Differenz des Kalenderjahrs oder des laufenden Jahres bis auf den Tag genau. Letzteres ist z.B: für eine Altersangabe relevant.

Dann geht es darum das Jahr bis auf die Anzahl der Tage runter zu brechen. Mit den Tagen kannst du wieder rechnen.
Dazu verwendet man Befehle um Teile des Strings zu extrahieren.
%datum1:~0,2% liefert das Jahr zweistellig ab Position 0
date /t liefert genau das Format, das du benötigst.

Gruß
Netman
Bitte warten ..
Mitglied: simon-ni
13.03.2013 um 11:24 Uhr
Zitat von MrNetman:
Dann geht es darum das Jahr bis auf die Anzahl der Tage runter zu brechen. Mit den Tagen kannst du wieder rechnen.
Dazu verwendet man Befehle um Teile des Strings zu extrahieren.
%datum1:~0,2% liefert das Jahr zweistellig ab Position 0
date /t liefert genau das Format, das du benötigst.


Erstmal danke an Günni, leider ist das nicht die gesuchte Lösung, ich habe mich nicht richtig ausgedrückt.

Es sollte wie von MrNetman beschrieben für eine Altersangabe sein. Ich kenne php.net leider reichen meine PHP Kenntnisse nicht immer aus um das zu verstehen.

Ich habe das hier gefunden, könnte mir das jemand schnell umschreiben, das ich als eingabe meine Variable Datum1, im angegebenen Format, habe?
01.
   $tag = 19; 
02.
   $monat = 4; 
03.
   $jahr = 1985; 
04.
 
05.
   $jetzt = mktime(0,0,0,date("m"),date("d"),date("Y")); 
06.
   $geburt = mktime(0,0,0,$monat,$tag,$jahr); 
07.
   $age   = intval(($jetzt - $geburt) / (3600 * 24 * 365)); 
08.
 
09.
   echo $age . " Jahre alt";
Bitte warten ..
Mitglied: Guenni
13.03.2013 um 11:49 Uhr
Hi simon-ni,

du speicherst mittels explode dein Datum als Array, und übergibst die Array-Elemente an mktime.

01.
<?php 
02.
$datum1 = "05.12.1961"
03.
$geboren = explode('.', $datum1); 
04.
 
05.
$jetzt = mktime(0,0,0,date("m"),date("d"),date("Y")); 
06.
$geburt = mktime(0,0,0,$geboren[1],$geboren[0],$geboren[2]); 
07.
$age   = intval(($jetzt - $geburt) / (3600 * 24 * 365)); 
08.
 
09.
echo $age . " Jahre alt"
10.
?>

Gruß
Günni
Bitte warten ..
Mitglied: simon-ni
13.03.2013 um 12:48 Uhr
Das funktioniert, vielen dank
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Humor (lol)
Der Unterschied zwischen USA und USB

Link von BirdyB zum Thema Humor (lol) ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (1)

Frage von Gien-app zum Thema Windows Server ...

Microsoft Office
Button für Wechseln zwischen den Tabellenblättern (6)

Frage von lupi1989 zum Thema Microsoft Office ...

Benchmarks
gelöst Unterschied zwischen +12V und 12V Netzteil für Festplatte (9)

Frage von FelixW zum Thema Benchmarks ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...