2016-05-26 9 views
0

Angenommen, ich habe drei Variablen.Wie finde ich das nächste Datum heraus, wenn ich den Tag dieses Datums schon weiß?

$curr_day = "monday"; 
$curr_date = "12/12/2222";//('d/m/y') 
$next_day = "friday"; 

$next_date = ??; 

was wird das nächste Datum sein? Gibt es eine "PHP-Funktionen", die mir hilft, $ next_date herauszufinden?

Dank Im Voraus.

+0

Ist dieser Freitag in derselben Woche? –

+0

Freitag wird größer als das aktuelle Datum ...... das ist sicher. Nur daran erinnern, ich bin auf der Suche nach Funktionen. –

Antwort

1

Sie brauchen nur:

var_dump(new DateTime('2016-05-29 next friday')); 

geben Ihnen nächsten Freitag nach „2016.05.29“.

object(DateTime)[2] 
    public 'date' => string '2016-06-03 00:00:00.000000' (length=26) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'Europe/Berlin' (length=13) 

Sie komplettes Beispiel mit der Funktion, die Sie brauchen:

$curr_day = "monday"; 
$curr_date = "26/05/2016"; 
$date = DateTime::createFromFormat('d/m/Y', $curr_date); 
$nextDate = new DateTime($date->format('Y-m-d').' next friday'); 
var_dump($nextDate->format("d/m/Y")); 

string '27/05/2016' (length=10) 
1

haben Sie versuchen:

var_dump(new DateTime('next friday')); 
+0

Aktuelles Datum bedeutet nicht "heute". Es könnte ein zukünftiges Datum sein. In diesem Fall ? –

+0

siehe Antworten unten erklären sie, wie man das Ergebnis von einem bestimmten Datum erhalten, ich gab Ihnen einfach den Weg yo gehen. –

0

ich in der Regel DateTime verwenden Datum bezogene Probleme zu lösen. Werfen Sie einen Blick auf das folgende Beispiel:

// Make a new DateTime object using your date 
$date = DateTime::createFromFormat('Y-m-d', '2016-05-25'); 

// Modify the object to get the next date 
$date->modify('next friday'); 

// Output the date 
echo $date->format('Y-m-d'); 
0

Ich gehe davon aus Ihrer $curr_date ist in m/d/Y Format (wenn es nicht, ist bitte klären Sie Ihre Frage, weil 12/12 es verwirrend ist).

Sie könnten strtotime als eine einfache Möglichkeit verwenden, relative Daten zu berechnen. Siehe Example #1.

$curr_day = "Monday"; 
$curr_date = "12/12/2222"; 
$next_day = "Friday"; 

// Convert your string $curr_date to timestamp 
$curr_date = strtotime($curr_date); 

// Then use again strtotime to calculate the relative date. 
echo date('m-d-Y', strtotime("next " . $next_day, strtotime($curr_date))); 

Hoffe, das hilft!

PS: Btw, 12/12/2222 ist nicht Montag aber Thursday.

0

VERSUCH! dies ...

// get next date 
$d = new DateTime($curr_date); 
$next_date = new DateTime($d->format('d/m/y')); 
echo $next_date->modify('+1 day'); //13/12/2222