2009-05-06 5 views
23

W moim kodzie PHP mam datę w mojej zmiennej "$ wysłanaData".
Teraz chcę uzyskać datę po upływie 7 dni, 15 dni, jednego miesiąca i 2 miesięcy.Jak mogę uzyskać datę po 15 dniach/1 miesiąc w PHP?

Jakiej funkcji daty należy użyć?

Format daty wydruku powinien być w formacie amerykańskim.

+2

Termin chcesz do Google jest "data arytmetyka". –

Odpowiedz

17

spróbować tej

$date = date("Y-m-d");// current date 

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +2 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +30 days"); 
2

Jaki jest format wejściowy tak?

1) Jeśli Twoją datą jest tablica roku, miesiąca i dnia, możesz mktime (0, 0, 0, $ month, $ day + 15, $ year) lub mktime (0, 0, 0, $ miesiąc + 1, $ dzień, $ rok). Zauważ, że mktime to inteligentna funkcja, która będzie poprawnie obsługiwać wartości spoza granic, więc mktime (0, 0, 0, 13, 33, 2008) (który jest miesiąc 13, dzień 33 2008) zwróci znacznik czasu dla lutego , 2, 2009.

2) Jeśli datą jest znacznik czasu, to po prostu dodaj 15 * SECONDS_IN_A_DAY, a następnie wypisz wynik z datą (/ * dowolny format * /, $ wysłanaData). Jeśli chcesz dodać jeden miesiąc, 30 dni nie zawsze będzie działać poprawnie, więc możesz najpierw przekonwertować znacznik czasu na miesiąc, dzień i rok (z funkcją date()), a następnie użyć (1).

3) Jeśli twoja data jest łańcuchem znaków, najpierw przeanalizuj ją, na przykład za pomocą polecenia strtotime(), a następnie wykonaj, co chcesz.

13

Od PHP 5.2.0 build DateTime w klasie jest dostępny

$date = new DateTime($postedDate); 

$date->modify('+1 day'); 

echo $date->format('Y-m-d'); 

http://php.net/manual/en/class.datetime.php

+0

Wielkie dzięki. Rozwiązuje mój problem w kilka sekund. Jeszcze raz dziękuję –

+0

Zawsze wolę to rozwiązanie od opcji 'strtotime'. – Peon

3

To bardzo proste; spróbuj tego:

$date = "2013-06-12"; // date you want to upgade 

echo $date = date("Y-m-d", strtotime($date ." +1 day")); 
9
$date=strtotime(date('Y-m-d')); // if today :2013-05-23 

$newDate = date('Y-m-d',strtotime('+15 days',$date)); 

echo $newDate; //after15 days :2013-06-07 

$newDate = date('Y-m-d',strtotime('+1 month',$date)); 

echo $newDate; // after 1 month :2013-06-23 
Powiązane problemy