BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Problem mit Datum » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Problem mit Datum
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Flux
Junior Member


images/avatars/avatar-2252.gif

Dabei seit: 24.08.2006
Beiträge: 169

Problem mit Datum       Zum Anfang der Seite springen

date("d.m.Y", mktime(0, 0, 0, 02, 09, 2008));

ergibt "31.01.2008" anstatt "09.02.2008"

date("d.m.Y", mktime(0, 0, 0, 09, 09, 2008));
ergibt: "30.11.2007"

und ich verstehe grad absolut nicht warum?!?

habe keine fremden faktoren. also effektiv nur

<?php
date(....);
?>

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Flux: 17.07.2008 09:17.

16.07.2008 18:29 Flux ist offline E-Mail an Flux senden Homepage von Flux Beiträge von Flux suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

      Zum Anfang der Seite springen

Erstens ist die Parameterreihenfolge von mktime() bei dir falsch. Wie im englischsprachigen Raum leider üblich kommt erst der Monat und dann der Tag.

Außerdem bedeuten vorangestellte Nullen vor Zahlen, dass das ganze als Oktalzahl zu betrachten ist. Ich nehme aber schon an, dass du mit Dezimalzahlen rechnest Augenzwinkern

Das, was du haben willst, wäre also wie folgt korrekt:

php:
1:
date("d.m.Y"mktime(000922008));


__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

16.07.2008 18:39 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Flux
Junior Member


images/avatars/avatar-2252.gif

Dabei seit: 24.08.2006
Beiträge: 169

Themenstarter Thema begonnen von Flux
      Zum Anfang der Seite springen

hmm verstehe.

konkret habe ich folgendes problem:

ich habe 2 daten:

1. datum heute als date("d.m.Y")
2. datum an der die rechnung fällig ist.

nun möchte ich ausrechnen, ob am heutigen tag die rechnung bereits bezahlt sein müsste. als muss ich herausfinden ob heute >= Fälligkeitsdatum ist.

das problem ist, dass ich das Fälligkeitsdatum nicht als Date sondern effektiv als Text habe das z.B. so aussieht: 31.12.2008

Wie mach ich das am einfachsten?
17.07.2008 09:07 Flux ist offline E-Mail an Flux senden Homepage von Flux Beiträge von Flux suchen
Misel Misel ist männlich
Hüter des Kitkat


images/avatars/avatar-2084.png

Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d e

      Zum Anfang der Seite springen

So lange Du PHP >= 5.1 und nicht unter Windows benutzt ginge das mit: http://de.php.net/strptime

Aber es ist wirklichs empfehlenswert, Datumswerte durchweg als timestamp zu speichern und erst bei der Ausgabe mittels strftime() das Format anzupassen.

__________________
LAUFT! Ich spiele KILLERSPIELE!
17.07.2008 09:48 Misel ist offline E-Mail an Misel senden Homepage von Misel Beiträge von Misel suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Und falls du das Ganze in einer DB ablegst, würde ich die Datumsfunktionen der DB per SQL nutzen. z.b. NOW() für heute in MySQL.

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
17.07.2008 10:48 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Flux
Junior Member


images/avatars/avatar-2252.gif

Dabei seit: 24.08.2006
Beiträge: 169

Themenstarter Thema begonnen von Flux
      Zum Anfang der Seite springen

mein ziel ist ja im prinzip ein date in ein timestamp und wieder zurück zu wandeln. habe ich mal folgendermassen probiert:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
// date ohne sekunden
$now date("Y-m-d H:i:00");
echo "now: $now <br>";
            
// date in timestamp
$nowts mktime($now);
echo "nowts: $nowts <br>";
        
// timestamp wieder in date                
$now2 date("d.m.Y"$nowts);
echo "now2: $now2 <br>";


Ergibt momentan:

now: 2008-07-21 12:01:00
nowts: 1223820104
now2: 12.10.2008

was hab ich falsch gemacht? muss ich $now so auseinandersplitten, dass es keine vorstehenden nullen hat? kann ja nicht die elegante lösung sein oder?

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Flux: 21.07.2008 12:02.

17.07.2008 11:33 Flux ist offline E-Mail an Flux senden Homepage von Flux Beiträge von Flux suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Um ein Datum zurück in einen Timestamp zu verwandeln würde ich lieber strptime() verwenden.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

21.07.2008 13:12 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Problem mit Datum

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH