WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » php mit datum rechnen » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von raiserle
warum immer explode....
mit regex ist die verarbeitung viel schneller
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
<?php
$dein_datum="2006-08-23";    // was halt aus der db kommt
                                            // ich habe berücksichtigt, 
                                            //jahr auch 2stelig monat und tag 1 stellig
preg_match("#([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})#si",$dein_datum,$treffer);

print_r($treffer);
// indize 0 -> gibt den kompletten string zurück
// indize 1 -> jahr
// indize 2 -> monat
// indize 3 -> tag
?>

nun kannste ja zu $treffer[1]+2 addieren und es kommt das selbe wie bei den anderen
raus. aber sollte es nochmals gesagt sein, regex ist schneller als explode, str_replace
usw...
--- edit
hab ich übelesen, ja in der sql spart er noch mehr zeit, wenn er es dort macht, dann muss aber das feld schon als date gekennzeichnet sein, oder irre ich da? wenn es varchar ist, sollte es da auch gehen? hab das noch nie probiert.
kann ja mal wer seine erfahrung sagen...

1: 
2: 
3:
<?php
$result=mysql_query("SELECT SUM(YEAR + 2) AS jahradd,YEAR AS jahr, MONTH AS monat, DAY AS tag FROM <tabelle> WHERE <bedingung>");
?>


gruß raiserle
von TeX
1:
$neue_zeit=mktime(date("H",$date_db),date("i",$date_db),date("s",$date_db),date("m",$date_db),date("d",$date_db),date("Y",$date_db)+2);
von skc.tiddy
würde ja im sql_query empfehlen...ist einfacher und edler ;)
von redled
ganz einfach

entweder über SQL-Query -->

select DATE_ADD('2004-02-10', INTERVAL '2' YEAR);

Anstelle des Datumswertes steht dan der Spaltenname!

oder mit PHP:

$datum = "2004-02-10";
list ($jahr, $monat, $tag) = explode ("-", $datum);
$tstamp = mktime(date("H"),date("i"),date("s"),date($monat),date($tag),date($jahr)+2);
$adddatum = date("d:m:Y",$tstamp); // errechnetes Jahr

--> sollte gehen , evtl hab ich beim mktime() Tag und Monat vertaucht*grübel*
von HG
mit explode. http://www.php.net/exlpode Da ist es recht gut beschrieben. (Ich kann mir die Parameterreihenfolge einfach nicht merken )

Nach oben