2016-05-24 6 views
-1

Gibt es eine Möglichkeit zur Berechnung der genauen Datum nach/vor 6 Monaten in PHP unter Berücksichtigung der dynamischen Veränderung in den Tagen des Monats, d. H. Einige Monate haben 30 Tage und einige haben 31 und 28 natürlich. Ich weiß, dass es mit MySQL gemacht werden kann, aber ich möchte wissen, ob es auch eine Option mit PHP gibt.Genaues Datum Kalkulator

Vielen Dank im Voraus.

+2

Verwenden Datetime-Klasse: es dauert ein Schaltjahr, DST und alle Probleme in Rücksichtnahme auf Sie. – Arcesilas

+0

Nicht sehr klar. – Dev

+0

Lesen Sie die Dokumentation: http://php.net/DateTime – Arcesilas

Antwort

0

get Datum vor dem 6. Monat von aktuellen Monat:

echo date("F 1, Y", strtotime("-6 months")); 
+1

Alles gut, bis auf das langweilige '1'. Wofür ist das? es hebt die Grundvoraussetzung auf, die sie haben. Vor genau 6 Monaten war * der 24. November 2015 * und nicht * der 1. November 2015 *. –

+0

Der obige Code berücksichtigt nicht die genauen Daten. Habe das schon überprüft. – Dev

1

müssen Sie date_create, date_interval_create_from_date_string und date_format den Auftrag abzuschließen.

$date = date_create('2000-01-01'); 
date_add($date, date_interval_create_from_date_string('6 months')); 
echo date_format($date, 'Y-m-d'); // 2000-07-01 

Mit Object Oriented:

Hinzufügen

$date = new DateTime('2000-01-01'); 
$date->add(new DateInterval('P6M')); 
echo $date->format('Y-m-d') . "\n"; // 2000-07-01 

Subtrahierend

$date = new DateTime('2000-01-01'); 
$date->sub(new DateInterval('P6M')); 
echo $date->format('Y-m-d') . "\n"; // 1999-07-01 
+0

Zeigt immer noch kein genaues Datum an. Wenn ich 6 Monate zu 1 Monat ändere, zeigt es den 24. Juni, während es den 23. Juni zeigen sollte. – Dev

+0

Okey, lass mich sehen. –

+1

@Dev - Ich persönlich würde erwarten, dass es am 24. Juni (heute ist der 24. Mai) angezeigt wird, in welcher Zeitzone ist Ihr Server? (oder was ist Ihre Standard-Zeitzone Einstellung für Ihre PHP?) –

Verwandte Themen