![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Hi all :-)
Mam dwie daty w formacie timestampa. Jak pobrać wszystkie miesiące zawarte pomiędzy nimi. (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) Łatwo by było, gdyby miesiące miały tą samą ilość dni - ale nie mają. Jakieś pomysły, sugestie...? EDIt - juz prawie wykombinowalem tak wiec temat jest do skasowania. BTW. Czemu nie mozna skasowac wlasnorecznie napisanego tematu ? Ten post edytował NuLL 3.05.2005, 12:32:37 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak wykombinowałeś to pokaż skrypt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Może się niektórym przydać na tym forum.
OT: Jak usuniesz posta to temat zostaje usunięty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Proste nie ? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
2. Jesli nie ma zadnych dodatkowych postow to mozna usunac swoj -- i zarazem temat
1. Kod $pierwsza data ---> $druga_data while ( $loop_date < $druga_data ) { $loop_date = strtotime() zwieksz o jeden miesiac i dodaj do tablicy } jesli ostatni element tablicy jest wiekszy niz $druga_data (moze byc jescze tylko rowny) to go usun ew. wloz na poczatek $pierwsza data jesli ma tam byc $pierwsza_data = 2005-04-20 $duga_data = 2005-07-10 $x[ 0 ] = 2005-05-20 $x[ 1 ] = 2005-06-20 $x[ 3 ] = 2005-07-20; // za duza, wiec ja usuwasz no i dodajesz 2005-04-20 jesli potrzebujesz (unshift() chyba) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 15.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
@Bora: nie - mam dwa timestampy miedzy ktorymi muse wynalesc wszystkie miesiace i zwrocic jest np. w postaci tablicy.
@dr_bonzo - ale miesiące maja różnią liczbę dni. I możesz jakiś pominąc - twój pomysł się wykasztani jeśli różnica timestampow jest duza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Algorytm wkleje za niedługą chwilę. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kod nospora bierze pod uwage tylko miesiace pomijajac lata, a oto moje rozwiazanie:
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
bendi ma rację. Nie pomyślałem o latach. Ale to żaden problem. Nowy skrypt z małą poptawką:
|
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy porownac timestampy -- a nie bawic sie osobno z miesiacami i latami
@NuLL: gdzie ma sie wykaszanic? |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@dr_bonzo aby nie usuwać ostatniego miesiąca, wystarczy tylko dodawać do tablicy przed zwiększeniem o miesiać.
Moj poprawiony kod (po uwzględnieniu uwagi dr_bonzo):
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Prownanie timestamp'ow moze byc nie wystarczajace zeby uzyskac pewne wyniki otoz uzywajac definicji dat z kodu dr_bonzo
Kod $d1 = '2005-11-10'; $d2 = '2006-03-15'; // pokaze nov, dec, jan, feb, Dadza inny wynik niz Kod $d1 = '2005-11-20'; $d2 = '2006-03-15'; // pokaze nov, dec, jan, feb, A przeciez roznica miesiecy sie nie zmienila. Wlasnie dlatego moj kod sprowadza wszystko do pierwszego dnia miesiaca i pozniej dopiero porownoje. |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@bendi masz rację
Wracam do porzedniego kodu:
teraz twoje obie próby dadzą ten sam wynik |
|
|
![]()
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Moj kod byl ok, bo zalozenia mialem innne: liczylem CALE miesiace miedzy datami.
(specjalnie dalem te daty $d2 = '2006-03-15' i $d2 = '2006-03-20' zeby to pokazac) A jesli uwzgledniamy niepelne miesiace to kod powienien wygladac tak: {no i tu mial byc kod, ale nie wyszlo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , moze umieszcze pozniej} Pozniej nastalo, strzezcie sie:P
Ten post edytował dr_bonzo 9.05.2005, 16:49:44 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 21:46 |