Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[PHP] Differnzen zwischen zwei Daten

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 11.07.2008, 15:48    Titel: [PHP] Differnzen zwischen zwei Daten Antworten mit Zitat

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. zwinkern

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 zwinkern

Und die ganzen Tage, Monate und Jahre (und Schalttage usw.) "zu Fuß" ausrechnen ist mir zu blöd. grinsen
Kennt ihr vielleicht noch eine andere Möglichkeit?

MfG Type
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 11.07.2008, 15:57    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.07.2008, 15:59    Titel: Antworten mit Zitat

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 zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 11.07.2008, 16:00    Titel: Antworten mit Zitat

gut oder so, der faule findet die fertige funktion schneller happy
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 11.07.2008, 16:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.07.2008, 16:43    Titel: Antworten mit Zitat

es geht hier weder um VB noch um FB... mit den Augen rollen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 11.07.2008, 17:46    Titel: Antworten mit Zitat

ham wir diesen Jet-X-Award noch? grinsen
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 11.07.2008, 18:08    Titel: Antworten mit Zitat

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?
verwundert

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.07.2008, 18:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 11.07.2008, 18:43    Titel: Antworten mit Zitat

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 grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 11.07.2008, 20:25    Titel: Antworten mit Zitat

Siehe ansonsten

http://ch2.php.net/manual/de/book.datetime.php

bezüglich unterstützten Zeitarithmetik-Möglichkeiten. Falls das Gewünschte fehlt und Du etwas eigenes brauchst, könnte evtl.

http://www.dreael.ch/Deutsch/Download/DatumBerechnung.html

hilfreich sein. Portieren der SUB und FUNCTION von QB nach PHP musst Du aber schon selber...
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz