Portal > Foren > PHP > PHP-Programmierung > Rechnung 10 Tage vorm aktuellen Datum verschicken
Antwort
 
Themen-Optionen
Alt 17.01.2007, 16:28 Nach oben    #1
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard Rechnung 10 Tage vorm aktuellen Datum verschicken

hi ich grüsse euch ganz herzlichst,

mein thema ist:

ich möchte eine rechnung 10 tage vor dem aktuellem datum verschicken,
soweit klappt die und jetzt komt mein aber, sobalt der 1 tag des monat kommt, komme ich nicht auf den 21 des vormonats.

als beispiel:
heute ist der 01.02.2007 und die rechnung soll aber am 21.01.2007 verschickt werden.
ich komme mit dem umrechnungsfaktor nicht zurecht?

hat bitte jemand eine lösung zu dieser sache?

hier der code den ich schon mal so geschrieben habe.

PHP-Code:
<?php
 
// Aktuelles Datum
$heute  date('d.m.Y');
// Aktuelles Datum in ein Array umwandeln
$akttag explode("."$heute);
// Datum wird als Array ausgegeben
echo "Der Aktueller Tag ist: " $akttag[0] . "." $akttag[1] . "." $akttag[2];
// 10 Tage vorrechnen
$tagvor 10;
$tage   60*60*24*$tagvor;
$tagen  $tage/(60*60*24);
$tag    $akttag[0]-$tagen;
echo 
"<br>10 Tage vorher soll die Rechnung schon ausgegeben werden, also am: $tag.$akttag[1].$akttag[2]";
 
?>
ich danke euch schon im vorraus für eure unterstützung

ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 16:46 Nach oben    #2
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

guck dir mal die Funktion mktime und time an.
[PHP] Zeitformate, Datum und Co


du rechnest einfach heute:
time()

zuzüglich die x Tage:

x*60*60*24

daraus die Summe ist dann jetzt in x Tagen:

PHP-Code:
<php
  $x 
10;
  
$jetzttime();
  
$spaeter $x*60*60*24;

  
$summe $spaeter $jetzt;
  
  echo 
date('d.m.Y'$summe);
?> 
(ungetestet)

Das soll zum Verständniss dienen - das läßt sich noch stark zusammenfassen!


Alternativ geht das auch einfach in der Funktion mktime().
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!

Geändert von Jann Hendrik (05.06.2007 um 09:52 Uhr). Grund: link angepasst
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 17:17 Nach oben    #3
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

hi jann,

ich danke dir ganz herzlichst für die schnelle lösung.

ich habe es so zusammen gefasst:


PHP-Code:
 
<?php
// Aktuelles Datum
$tag  date('d.m.Y');
// Aktuelles Datum in ein Array umwandeln
$akttag explode("."$tag);
// Datum wird als Array ausgegeben
echo "Der Aktuelle Tag ist: " $akttag[0] . "." $akttag[1] . "." $akttag[2];
// 10 Tage vorrechnen
$faktor 10;
$heute  time();
$vorher $faktor*60*60*24;
$summe  $heute $vorher;
echo 
"<br>10 Tage vorher soll die Rechnung schon ausgegeben werden, also am: " date('d.m.Y'$summe);
?>
ganz herzliche grüsse

jennifer

Geändert von jennifer (17.01.2007 um 17:59 Uhr).
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 17:56 Nach oben    #4
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

ok - und da du dir sicherlich auch den link zu mktime angeschaut hast hier noch die kürzere Lösung:
PHP-Code:
<?php
  
echo date('d.m.Y', echo mktime(000date('n'), date('j')+21date('Y')));
?>
Ich denke, dass die Methode erst das Datum zu erzeugen und dann via explode wieder aufzusplitten arg unschön ist!

Für dich würde das dann so aussehen:
PHP-Code:
<?php
  
echo "Der Aktuelle Tag ist: " date('d.m.Y') . "<br>10 Tage vorher soll die Rechnung schon ausgegeben werden, also am: " date('d.m.Y'mktime(000date('n'), date('j')+21date('Y')));
?>

Tipp:
Und wenn die Daten aus einer Datenbank kommen sollten, dann ergeben sich schönere Methoden!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!

Geändert von Jann Hendrik (17.01.2007 um 20:08 Uhr).
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 18:11 Nach oben    #5
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

hi jann,

ganz herzlichen dank für die weiteren informationen.

die daten werden später aus der datenbank gelesen, benötige es aber vorher zum üben und logisch zuverstehen.

in den neuen codes sind zwei echo befehle zu viel, vor mktime, soll nur ein hinweis sein, wenn jemand anderes den codes benötigt.


neu ohne den zweiten echo befehl
PHP-Code:
 
<?php 
  
echo date('d.m.Y'mktime(000date('n'), date('j')+21date('Y')));
?>
 
<?php 
  
echo "Der Aktuelle Tag ist: " date('d.m.Y') . "<br>10 Tage vorher soll die Rechnung schon ausgegeben werden, also am: " date('d.m.Y'mktime(000date('n'), date('j')+21date('Y'))); 
?>
ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 19:58 Nach oben    #6
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Wie wäre es einfach mit Folgendem?
PHP-Code:
strtotime('-10 days'); 
Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 20:11 Nach oben    #7
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

Zitat:
Zitat von jennifer Beitrag anzeigen
in den neuen codes sind zwei echo befehle zu viel, vor mktime, soll nur ein hinweis sein, wenn jemand anderes den codes benötigt.
sry - habe ich somit oben editiert.


Was meine Frage wg. der Datenbank angeht - da gibt es nämlich noch einige feine Sachen, die man sich dann mal anschauen kann, weil die Datum-Funktionen von mysql sehr nett sind!

Zitat:
Zitat von Basti Beitrag anzeigen
Wie wäre es einfach mit Folgendem?
Ich will nicht mit einer Diskussion zu dem Thema anfangen, aber das ist meiner Erfahrung nach stark von der Konfiguration des Servers abhängig.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 20:35 Nach oben    #8
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

hi ihr lieben,

ich bastel gerade herum wie ich das aus der datenbank hole, da fehlt mir manchmal die logik, aber egal wird schon irgenwann in das köpfchen rutschen und bleiben, es gibt leider keine einfachen nachvollziebaren praxisbeispiele wie ein apfel + noch ein apfel

sei den ihr habt ein einfaches beispiel was man in deutsch versteht, nicht in programmiererisch. juhu


ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 20:54 Nach oben    #9
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

mmmh... ich würde vorschlagen, dass du Schritt für Schritt aufschreibst, was du warum machst und wo dabei dein Problem ist.
Wir helfen dir bei deinen Problemen weiter?

Sei es durch konkreten Code, oder aber - und das wird dir mittel- und langfristig mehr helfen - durch Hinweise und links.

ok?

wenn ja - dann bist du nun dran
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 20:55 Nach oben    #10
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

ich glaube, habe es geschafft, die datumsangaben aus der datenbank werden jetzt 10 tage vorher angezeigt.

PHP-Code:
 
<?php

$dmY 
explode("."$datumvon); // Datum aus Datenbank in ein Array umwandeln
$dm  date('d.m.Y'mktime(000date($dmY[1]), date($dmY[0])-10date($dmY[2])));
 
?>

ganz herzliche grüsse und nochmals vielen dank für die unterstützung

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.01.2007, 21:34 Nach oben    #11
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

so nun möchte ich versuchen mit worten meinen weg zubeschreiben:

also ich habe ein tabellen mit feldname Datum (Inhalt 21.01.2007) an diesem tag hat der kunde den artikel gekauft, dieser artikel hat eine abrechnungszeitraum von einem jahr, also bis 21.01.2008.
nun möchte ich das 10 tage vor dem 21.01.2008 automatisch eine rechnung verschickt wird (info E-Mail) so das 10 tage vor dem 21.01.2008
auch im kunden-center das angezeigt wird das eine rechnung zuverfügung steht und er den link anklicken kann.
zum aktuellen datum funktioniert dies auch alles.
mein problem ist es das alles 10 tage vorher geschen soll.

ich hoffe, ich konnte dies verständlich rüberbringen.

ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 07:14 Nach oben    #12
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

ok, das Feld ist vom Typ date?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 10:21 Nach oben    #13
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

hi jann,

mein tabellenname heisst DatumVon und DatumBis und den Feld typen habe ich mit varchar(20) not null benannt. da habe ich die möglich auch einen eintrag vorzunehmen z.b. einmalig oder teilzahlung oder....
wenn ich dies alles ändern müsste hätte ich jetzt 100 artikeln zuändern, da ja die formatierung des datums 20.01.2006 eingetragen ist.

hier ein beispiel wie ich die tabelle aufgebaut habe

Code:
 
CREATE TABLE `wsp_artikel` (
  `ArtikelID` int(5) NOT NULL auto_increment,
  `ArtikelGruppe` varchar(100) NOT NULL default '',
  `ArtikelName` varchar(255) default NULL,
  `ArtikelPreis` decimal(8,2) default NULL,
  `DatumVon` varchar(20) default NULL,
  `DatumBis` varchar(20) default NULL,
  `AID` tinyint(4) NOT NULL default '0',
  `LogID` tinyint(5) NOT NULL default '0',
  `Status` varchar(7) NOT NULL default '',
  PRIMARY KEY  (`ArtikelID`)
) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=52 ;
--
-- Daten für Tabelle `wsp_artikel`
--
INSERT INTO `wsp_artikel` VALUES (1, 'Webspace', 'Webspace-Paket 1 = 30 MB', 14.40, '20.03.2007', '20.03.2008', 1, 1, 'bezahlt');
INSERT INTO `wsp_artikel` VALUES (2, 'Webspace', 'Webspace-Paket 1 = 30 MB', 14.40, '20.01.2006', '20.01.2007', 1, 1, 'bezahlt');
INSERT INTO `wsp_artikel` VALUES (3, 'Domain', 'jdhost.de', 8.70, '20.03.2006', '20.03.2007', 1, 1, 'bezahlt');
INSERT INTO `wsp_artikel` VALUES (4, 'Domain', 'jennid.de', 8.70, '21.01.2006', '21.01.2007', 1, 1, 'bezahlt');
da mein script schon läuft und ich nur noch neuerungen hinzufüge und dies weiter ausbaue

ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 10:44 Nach oben    #14
Neuer Benutzer
 
Registriert seit: 16.01.2007
Beiträge: 4
Standard

Du kannst meines Wissens alle Einträge in einer DB konvertieren, also aus varchar mache date. Dafür brauchst du eine Tabelle in der du die alten Datume (plural?) in das neue Format konvertieren lässt. Am Ende lässt du die neuen Datume in die alte Tabelle eintragen.

gruß alex
alexspider ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 11:16 Nach oben    #15
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

[ot]Plural von Datum ist Daten[/ot]
__________________
I did it my way - Senseless-Blog

Geändert von Ben (18.01.2007 um 14:39 Uhr). Grund: Tippfehler korrigiert
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 11:17 Nach oben    #16
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

Zitat:
Zitat von alexspider Beitrag anzeigen
Du kannst meines Wissens alle Einträge in einer DB konvertieren, also aus varchar mache date. Dafür brauchst du eine Tabelle in der du die alten Datume (plural?) in das neue Format konvertieren lässt. Am Ende lässt du die neuen Datume in die alte Tabelle eintragen.

gruß alex

hi alex,

ganz herzlichen dank für die info, bin damit gerade überfordert

herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 11:21 Nach oben    #17
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

@Jennifer:
ich weiß ja nicht, wie weit du mit der Planung schon bist, aber du solltest durchaus in Betracht ziehen auch die anderen Feldtypen zu benutzen.

Der Vorteil des Feldtyps date und datetime liegt darin, dass mysql dafür noch eine Reihe sinnvolle Funktionen zur Verfügung stellt.

Der Vorteil dabei liegt darin, dass dies wesentlich resourcenschonender abgearbeitet werden kann.

Daher auch meine Frage nach dem Feldtyp.


Wäre es dir möglich den noch zu ändern?
Das betrifft die Spalten DatumVon und DatumBis
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 11:46 Nach oben    #18
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

hi jann,

ja dies ist möglich, müsste die einträge neu einschreiben und verschiedene datein umschreiben, wegen der datums formatierung kostet bissl zeit und die datums funktionen habe ich in mein büchern drin stehen.

ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 16:02 Nach oben    #19
Benutzer
 
Registriert seit: 24.10.2006
Beiträge: 90
Standard

Zitat:
Ich will nicht mit einer Diskussion zu dem Thema anfangen, aber das ist meiner Erfahrung nach stark von der Konfiguration des Servers abhängig.
Jo, aber die kann man normalerweise auch im PHP Skript festlegen.
Byrel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.01.2007, 16:23 Nach oben    #20
Benutzer
 
Registriert seit: 10.01.2007
Ort: Chemnitz
Beiträge: 47
Standard

hi,

so habe alles umgeschrieben und es einmal so formatiert


PHP-Code:
 
$artikeln 
= @mysql_query("
                                  SELECT
                                            DATE_FORMAT(DatumVon, '%d.%m.%Y') DatumVon,
                                            DATE_FORMAT(DatumBis, '%d.%m.%Y') DatumBis
                                  FROM
                                             wsp_adressen AS ad, wsp_artikel AS a
                                 WHERE
                                             ad.ID=a.AID
                                 $order"
);
 
:
:
// Datum aus Datenbank in ein Array
$dmY     explode("."$datumbis);  umwandeln
 
// Datum 10 tage vor dem aktuellen Tag umwandeln
$dmYvor  date('d.m.Y'mktime(000date($dmY[1]), date($dmY[0])-10date($dmY[2])));
 
// Datums Ausgabe
echo $datumvon ' - ' .  $datumbis;
echo  
'<br>' $dmYvor
dies funktioniert wunderbar und dadurch habe ich noch mehr möglichkeiten mit der date() funktion.

ist es möglich in dem Tutorials => Zeitformate, Datum und Co http://forum.developers-guide.net/showthread.php?t=4845 ein paar praxisbeispiele einzuarbeiten, wie man zeit und datum aus einer mysql-DB anzeigen oder formatiert oder wie man in einer php datei ein datumsformat update (formulareingabe)?

ganz herzliche grüsse

jennifer
jennifer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.