2010-04-22 5 views
8

Ich war auf der Suche auf diesem Posten, und es ist in der Nähe, was ich brauche und fügen hinzu: PHP - How to count 60 days from the add datePHP durch späteren Zeitpunkt Berechnung Tage zu einem variablen Datum

jedoch in diesem Beitrag wird die Berechnung durchgeführt wird durch Zugabe von 60 Tagen zum aktuellen Datum. Was ich tun muss, ist das Datum basierend auf einem variablen Datum zu berechnen (und nicht das aktuelle Datum).

Etwas wie folgt aus:

$my_date = $some_row_from_a_database; 
$date_plus_10_days = ???; 

Wer weiß, wie das zu tun?

Dank

+0

Wie ist das Datumsformat in der Datenbank (Zeitstempel)? –

Antwort

26

Sie etwas vor dem "10 Tage" Teil setzen können:

strtotime("2010-01-01 +10 days"); 
+4

+1 hat heute eine neue Sache gelernt. Vielen Dank. Wahrscheinlich möchte das OP wieder in eine vom Menschen lesbare Zeichenfolge konvertieren. So etwas wie Datum ('Y-m-d', strtotime ("2010-01-01 +10 Tage")); – zaf

+4

'strototime' nimmt einen Zeitstempel als zweites Argument, das als Referenzzeitstempel für das, was Sie als erstes Argument angeben, verwendet wird. Wenn also der OP einen Zeitstempel von MySQL bekommt, kann er auch' strtotime ('+60 Tage ', $ timestampFromMySql); ' – Gordon

+0

perfekt - danke! – OneNerd

6

Verwenden DATE_ADD

http://www.php.net/manual/en/datetime.add.php

$my_date = new DateTime($some_row_from_a_database); 
$date_plus_10_days = date_add($my_date, new DateInterval('P10D')); 
+6

Sie sollten erwähnen, dass dies nur ab PHP 5.3.0 möglich ist. –

1

Ich sehe, Sie sind retriving Daten aus eine Datenbank. Wenn Sie MySQL verwenden, können Sie es auf die Auswahl tun:

Beispiel: Sie das letzte Datum der Tabelle und dieses Datum-7 Tage

select max(datefield) as ultimaf, DATE_SUB(max(datefield),INTERVAL 7 DAY) as last7 
from table 

Es ist einfach Gebrauch CURDATE() benötigen, wenn Sie wollen das heutige Datum.

Wenn Sie ein dynamisches zwischen dem, müssen wählt die Anzahl der letzten 7 Tage:

select count(*) from table 
where DATE_SUB(CURDATE(),INTERVAL 7 DAY)<=datefield" 
2
date('Y-m-d H:i:s', strtotime("2014-11-24 06:33:39" +35 days")) 

dies wird die berechnete Datum in definierten Format erhalten.

0

Angenommen, das heutige Datum ist

date_default_timezone_set('Asia/Calcutta'); 
$today=date("Y-m-d"); 

und ich kann 10 Tage im aktuellen Datum hinzufügen wie folgt:

$date_afte_10_days = date('Y-m-d', strtotime("$today +10 days")); 
0

Sie werden in strtotime() suchen. Ich könnte mir vorstellen, Ihre endgültige Code wie folgt aussehen würde:

$dateVariable  = strtotime('2017-01-29');//your date variable goes here 
$date_plus_60_days = date('Y-m-d', strtotime('+ 60 days', $dateVariable)); 
echo $date_plus_60_days; 

Wenn Sie PHP verwenden> = 5.2 Ich schlage vor, Sie stark das neue Datetime-Objekt verwenden. Zum Beispiel wie folgt:

$date_plus_60_days = new DateTime("2006-12-12"); 
$date_plus_60_days->modify("+60 days"); 
echo $date_plus_60_days->format("Y-m-d"); 
Verwandte Themen