2010-09-04 11 views
5

to jest bardzo kiepskie pytanie, ale nie jestem w stanie znaleźć tego. Format Jak zdobyć dzisiejszą datę i datę po dwóch miesiącach ..Pobierz aktualną datę i datę po dwóch miesiącach w php

jest miesiąc-data-lat

+0

masz na myśli dodać 2 miesiącach pracy (8 tygodni pracy) lub masz na myśli 2 miesiące kalendarzowe? Przypuszczalnie masz na myśli mm-dd-rrrr, ale w każdym razie odpowiedź Yanicks pokazuje, jak zdobyć znacznik czasu unixa od dzisiaj. – Cups

+0

@Cups yaa ale zmodyfikowałem go trochę, aby uzyskać moje wymagania –

Odpowiedz

18

Można użyć strtotime() funkcji (liczbowy).:

$today = time(); 
$twoMonthsLater = strtotime("+2 months", $today); 

// If what you really want is exactly 60 days later, then 
$sixtyDaysLater = strtotime("+60 days", $today); 
// ...or 8 weeks later : 
$eightWeeksLater = strtotime("+8 weeks", $today); 

W każdym razie, powstałe nowe znaczniki czasu można następnie przekształcić w miesiąc-date-roku:

echo 'Today is : ' . date('m-d-Y', $today); 
echo 'Two months later will be : ' . date('m-d-Y', $twoMonthsLater); 

** UPDATE **

Z PHP manual

Uwaga: Proszę pamiętać, że te funkcje są zależne od lokalnych ustawień danego serwera. Upewnij się, że korzystasz z czasu letniego (użyj np. $ Date = strtotime ('+ 7 dni', $ date), a nie $ date + = 7 * 24 * 60 * 60) i skacz lat temu podczas pracy z tymi funkcjami.

Wystarczy, że powinienem go wymienić ...

-2

Dzisiaj:

date('m-d-Y', time());

Dwa miesiące od teraz:

date('m-d-Y', time() + (86400 * 60));

+6

to nie jest prawda. "2010-02-01" (1 lutego 2010) + 60 dni to niecałe dwa miesiące później. I to nie bierze pod uwagę lat przestępnych itp. –

1

Istnieje kilka sposobów mógłbyś to zrobić - pierwszym byłoby zrobić coś hing tak:

echo $currentdate = date("Y-m-d H:i:s",time());  
echo $after60days = date('Y-m-d H:i:s', time() + 60 * 60 * 24 * 60); 

Zasadniczo, można wziąć aktualny znacznik czasu, wyrażony w sekundach, i dodać 60 * 60 * 24 * 60, która to ilość sekund w ciągu dwóch miesięcy.

Innym sposobem na to, co jest mój ulubiony sposób i jak to zrobić, to:

$after60days = strtotime("+60 days"); 

Efektem będzie dokładnie taki sam, $ after60days będzie mieć wartość równą datownik dnia dokładnie za dwa miesiące, ale używa on własnej funkcji strtotime().

Oczywiście, jeśli trzeba wstawić datę w formacie, który łatwo czytelne dla ludzi, można zrobić coś takiego:

echo date('Y-m-d H:i:s',$after60days);