Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 11.07.2008, 15:48 Titel: [PHP] Differnzen zwischen zwei Daten |
|
|
Hallo Leute,
ich weis, das hier ist kein PHP-Forum, aber die meisten von euch haben ja eh eine eigene Website und so denke ich, ihr könnt kmir da evt. weiterhelfen.
Und jetzt zum Problem:
ich habe zwie Daten, zum Beispiel 05.03.1990 und das aktuelle Datum (also time() ).
Und jetzt wollte ich anzeigen, wie viele Jahre, Monate und Tage (insgesamt) seit dem ersten Datum vergangen sind.
Ich dachte eigetnlich foglendes würde reichen: (wollte als Test erst einmal nur das Jahr sehen)
Code: | //Timestamp des gegebenen Datums bilden
$datum_timestamp = mktime(0, 0, 0, 3, 5, 1990)
//Differenz zum heutigen Timestamp ausrechnen
$differenz_timestamp = time() - $datum_timestamp
echo date("Y",$differenz_timestamp);
|
Leider zeigt er als Ergebnis 1988 an... - was nach meiner Auggassung nicht so ganz stimmt
Und die ganzen Tage, Monate und Jahre (und Schalttage usw.) "zu Fuß" ausrechnen ist mir zu blöd.
Kennt ihr vielleicht noch eine andere Möglichkeit?
MfG Type |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.07.2008, 15:57 Titel: |
|
|
timestamps sind absolute angaben, keine relativen.. timestamp 0 ist 1970, und von da zählt er aufwärts.. die differenz ist in jetzt in sekunden gegeben, nicht in timestamps, musst von hand auf jahr umrechnen (teilen durch 60*60*24*365) _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.07.2008, 15:59 Titel: |
|
|
Ist's denn so schwer? (omg, zu viel IRC... ich wollte "It's then so schwer" schreiben...)
http://www.google.de/search?q=datediff%20php
Ich finde da auf anhieb einige vielversprechende funktionen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.07.2008, 16:00 Titel: |
|
|
gut oder so, der faule findet die fertige funktion schneller  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 11.07.2008, 16:39 Titel: |
|
|
Code: | Private Declare Function GetTickCount Lib "kernel32" () As Long
Private G_AKTime As Long
Private Sub Form_Load()
On Error Resume Next
G_AKTime = GetTickCount
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
Dim XTemp As Long
Dim XSekunden As Long
Dim XMinuten As Long
Dim XStunden As Long
Dim XTage As Long
Dim XD As String
'Gesammt Sekunden-Abstand ausrechnen
XTemp = GetTickCount - G_AKTime 'ms Zeitabstand ausrechnen
XTemp = Fix(XTemp / 1000) 'Abstand zu Sekunden umrechnen
XSekunden = XTemp 'Tempvariable für spätere Formatierung nötig
'Tage ausrechnen (Den höchsten wert zuerst, dann den nächst kleineren, usw.)
XTage = Fix(XSekunden / 86400) 'Stunden Ganzzahl ausrechnen
XSekunden = XSekunden Mod 86400 'Rest Minuten ausrechnen
'Stunden vom rest ausrechnen
XStunden = Fix(XSekunden / 3600) 'Stunden Ganzzahl ausrechnen
XSekunden = XSekunden Mod 3600 'Rest Minuten ausrechnen
'Minuten vom Rest ausrechnen
XMinuten = Fix(XSekunden / 60) 'Minuten Ganzzahl ausrechnen
XSekunden = XSekunden Mod 60 'Rest sekunden ausrechnen
'Sekunden müssen nicht mehr ausregechnet werden, da diese bereicht vom rest vorhanden sind
'Zeit Formatiert ausgeben
XD = Format(XSekunden, "00")
If XTemp >= 60 Then XD = Format(XMinuten, "00") & ":" & XD
If XTemp >= 3600 Then XD = Format(XStunden, "00") & ":" & XD
If XTemp >= 86400 Then XD = Format(XTage, "00") & ":" & XD
Form1.Caption = XD
End Sub |
Zwar VB-Code, jedoch leicht in FB zu portieren.
Tage auszurechnen is noch ok, Wenns jedoch an Monate und Jahre geht, siehts schon schelchter aus, da du die SchaltJahre mit einbeziehen müsstest.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.07.2008, 16:43 Titel: |
|
|
es geht hier weder um VB noch um FB...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.07.2008, 17:46 Titel: |
|
|
ham wir diesen Jet-X-Award noch?  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 11.07.2008, 18:08 Titel: |
|
|
Ihr seid echt die grössten Spammer, die ich je gesehen hab. Das is echt unglaublich! .. Habt Ihr auchmal was Konstruktives beizutragen, oder könnt Ihr immer nur auf anderen Rumhacken, ohen auch nur ansatzweise einen hilfreichen beitrag zu schreiben?!?!?
Mir is es vollkommen egal, ob er VB / FB oder sonst was kann, der Code wird ihm ansich sicher mehr helfen, als ihm zu sagen, das er doch Googel nutzen soll, um sein, eurer meineung nach "spärliches" wissen auzufrischen. ... Schonmal was von Hilfsbereitschaft und Respekt gehört?
Schön, das Ihr euer Handwerk so gut versteht, aber bezieht euern wissensvorsprug nicht immer gleich auf andere.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.07.2008, 18:26 Titel: |
|
|
sorry, aber allein mit den ersten 3 ergebnissen hätte er schon 1 minute, nach dem ich den link gepostet hab, mit dem fertig sein können, was er vorhatte... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 11.07.2008, 18:43 Titel: |
|
|
Hallo,
die meisten Funktionen, die ich im Netz gefunden habe, rechnen leider nicht mit Schalttagen (insgesamt scheinen sie zum Teil ziemlich unzuverlässig zu sein).
Die anzahl der Tage festzustellen ist absolut kein Problem. Allerdings geht dann der Mist los...
Es gibt 7 Monate mit 31, 4 Monate mit 30 und 1 Monat 28 (bzw. 29) Tagen.
Außerdem muss ich ja auch unter Anderem wissen ob, um bei meinem Beispiel zu bleiben, der 05.03.1990 ein Schaltjahr ist, bzw. wann das nächste kommt.
Das ist irgendwie alles ziemlich kompliziert...
Ich glaub ich schick meinem Mathelehrer mal ne Mail  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
|