Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odejmowanie dat
Forum PHP.pl > Forum > PHP
termin
Witam, mam w zmiennej $data="2003-07-10" - jak odjąc od tego 30dni?
BzikOS
[php:1:9285ef00c1]<?php
$nowa_data = date("Y-m-d", mktime(0,0,0,7,10-30,2003));
?>[/php:1:9285ef00c1]
zalew
[php:1:74953540e4]<?php
$data_tmp = gmmktime(0,0,0,date("m,d,Y", $data));
$data_minus30 = date("d,m,Y", ($data_tmp - 30 * 86400));
//to z palca pisze, moglem sie rabnac
?>[/php:1:74953540e4]

a tu masz takie cos


update :
uprzedziles mnie Bzikos smile.gif to co zrobiles jest krotsze do tego pojedynczego przypadku... ale uwage mam taka ze nie mk tylko gmmk... wyprobuj sobie np mktime(0,0,0,0,0,0) co bedzie.. na dzien dzisiejszy nie bedzie to 0:0:0, 1 stycznia 1970 winksmiley.jpg
termin
niestety nie dziala, zwraca mi rok 1970-01-01

a ktora funkcja rozwali mi date na poszczegolne czesci w zaleznosci od znaku "-" ?
zalew
czyli zwrocilo ci 0..
zupdate'owalem powyzsze... dalem M i D zamiast m i d wiec dawalo dzien tygodnia slowem i dzien mieisaca tez...

a tu masz na surowo twoja date....
[php:1:51222788f3]<?php
$data_tmp = gmmktime(0,0,0,10,7,2003);
$data_minus30 = date("d-m-Y", ($data_tmp - 30 * 86400));
echo $data_minus30;
?>[/php:1:51222788f3]
dziala

a rozstrzaskac string mozesz explode() albo substringami jak cos potrzebujesz...
termin
Wszystko fajnie tylko ze date mam w zmiennej i wynik tez chcialbym w Y-m-d

Kod
$data_tmp = gmmktime(0,0,0,date("Y,m,d", $data));  

$data_minus30 = date("Y-m-d", ($data_tmp - 30*86400));

echo $data_minus30;


chyba ze zmienic wyswietlanie daty od konca, ale nie wiem ktora funkcja to zamienia
BzikOS
Ehhh...

[php:1:49bcc65857]<?php
$darray = explode("-", $data);
$nowa_data = date("Y-m-d", mktime(0,0,0,$darray[1],$darray[2]-30,$darray[0]));


?>[/php:1:49bcc65857]
termin
no wkoncu zadziało: THX chłopaki za pomoc
ti
Inne rozwiązanie problemu wg mnie bardziej przejrzyste.
Kod
<?

$ilosc_dni = 30;

$czas = date("U");

$czas = $czas - (86400*$ilosc_dni);

echo(date("d.m.Y",$czas));

?>

można modyfikować znienną $ilosc_dni
oraz znak w linijce $czas = $czas - (86400*$ilosc_dni); z - na plus jeśli chcemy wybiec w przyszłość
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.