Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ustalanie timestampów pierwszych i ostatnich
Forum PHP.pl > Forum > PHP
radziel
W celach debugowania i przedstawienia problemu napisałem szybko taki kod:

  1. <?
  2. define('NUMBER_OF_LAST_MONTHS',6);
  3.  
  4. $arrMonths = array('niezidentyfikowany','Styczeń','Luty','Marzec','Kwiecien','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień');
  5. $arrMonthsAng = array('none', 'January','February','March','April','May','June','July','August','September','October','November','December');
  6. $intMonth = date('n');
  7.  
  8.  
  9. for ($i = $intMonth; $i>$intMonth-NUMBER_OF_LAST_MONTHS; $i--)
  10. {
  11. $intMonthID = ($i<=0)?(12-abs($i)):$i;
  12. $intYear = ($i<=0)?date('Y')-1:date('Y');
  13.  
  14. echo '<b>'.$arrMonths[$intMonthID] .' '.$intYear . '</b><br />'
  15.  .'Poczatek: '. date('l dS of F Y h:i:s A',strtotime('1 '.$arrMonthsAng[$intMonthID].' '.$intYear)).' <br>'
  16. .'Koniec: '. date('l dS of F Y h:i:s A',strtotime('last day '.$arrMonthsAng[$intMonthID].' '.$intYear)).' <br>';
  17.  
  18. }
  19.  
  20. ?>


Potrzebuję Timestampy pierwszych i ostatnich dni n miesięcy wstecz. Powyższy kod, w takiej postaci (^^) zwróci:

Cytat
Marzec 2006
Poczatek: Wednesday 01st of March 2006 12:00:00 AM
Koniec: Sunday 12th of March 2006 12:00:00 AM
Luty 2006
Poczatek: Wednesday 01st of February 2006 12:00:00 AM
Koniec: Sunday 12th of February 2006 12:00:00 AM
Styczeń 2006
Poczatek: Sunday 01st of January 2006 12:00:00 AM
Koniec: Thursday 12th of January 2006 12:00:00 AM
Grudzień 2005
Poczatek: Thursday 01st of December 2005 12:00:00 AM
Koniec: Monday 12th of December 2005 12:00:00 AM
Listopad 2005
Poczatek: Tuesday 01st of November 2005 12:00:00 AM
Koniec: Saturday 12th of November 2005 12:00:00 AM
Październik 2005
Poczatek: Saturday 01st of October 2005 12:00:00 AM
Koniec: Wednesday 12th of October 2005 12:00:00 AM


Problem mam z ustaleniem końca każdego miesiąca. Nie mogę na stałe przypisać każdemu miesiącowi 30 dni gdyż to nie jest prawda a ja potrzebuję dokładnych danych. Tak samo jest z lutym - raz ma 28 raz 29 dni.

Myślałem że "Last day" odnosi się do ostatniego dnia każdego miesiąca ale się myliłem. Na stronie: Date input formats, nie znalazłem nic co by mi pomogło. Coś przeoczyłem?

Ktoś ma pomysł jak rozwiązać ten problem?
kszychu
date('t') powinno Ci pomóc.
chomiczek
albo date('t') jak pisze krzychu albo do daty pierwszego miesiąca dodać jeden miesiąc i odjąć jeden dzień. Nie wiem czy napisałem dokładnie to o co mi chodzi.. jak coś to wyjaśnie.
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.