Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]inkrementacja daty
zbychu1985
post 26.01.2020, 20:28:24
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.01.2020

Ostrzeżenie: (0%)
-----


Cześć! programuje w php od tygodnia i słabo u mnie nie tylko z pisaniem kodu ale również wyszukiwaniem tematów w Google ze wzgleadu na nie obycie z słownictwem.

A teraz pytanie:
W jaki sposób można wyciągnąć daty w formacie 2020-01-26 na 365 dni do przodu ikrementując o jeden dzień?
Próbowałem zrobić to pętlą for z funkcji date( 'Y-m-d' ) ale nie hula.Pomocy.
  1.  
  2. $stara_data = date( 'Y-m-d' );
  3. $nowa_data = date( 'Y-m-d', strtotime( $stara_data .' +1 day' ));
  4.  
  5.  
  6.  
  7. for($i=$stara_data; $i<=365; $i=$i + $stara_data)
  8. {
  9. echo $i;
  10. }
  11.  
  12.  
Go to the top of the page
+Quote Post
kreatiff
post 26.01.2020, 22:30:11
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Nie możesz mieszać w pętli for daty i zwykłego integera, bo nic z tego nie wyjdzie. Obiektowo możesz tak:
  1. $data = DateTime::createFromFormat('Y-m-d', '2020-01-26');
  2. for ($i = 1; $i < 366; $i++) {
  3. $data->modify('+1 day');
  4. echo $data->format('Y-m-d') . '<br>';
  5. }

W Google szukaj "php Datetime" i tam będzie sporo przykładów jak modyfikowac te daty według potrzeby..
Go to the top of the page
+Quote Post
Pyton_000
post 27.01.2020, 14:09:10
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


https://stackoverflow.com/questions/4312439...tes-in-an-array
Go to the top of the page
+Quote Post
zbychu1985
post 27.01.2020, 14:24:08
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.01.2020

Ostrzeżenie: (0%)
-----


Dzięki kreatiff, pętla działa, a teraz jak wyciągnąć z tej samej pętli:

-miesiąc w formacie słownym np: "STYCZEŃ,
-numer miesiąca w formacie np:"10",
oraz dzień tygodnia w formacie np: PN., WT. ŚR. itd

probowałem wyciągnąć numer miesiąca tak ale nie zwiększa daty:

  1. <?php
  2. $data = DateTime::createFromFormat('Y-m-d', '2020-02-01');
  3. $numer = DateTime::createFromFormat('m', '02');
  4. for ($i = 1; $i < 10; $i++) {
  5. $data->modify('+1 day');
  6. $main_data= $data->format('Y-m-d');
  7.  
  8. $numer->modify('+1 day');
  9. $main_numer= $numer->format('m');
  10. echo $main_numer;
  11.  
  12.  
  13.  
  14. echo "<a href=../../pages/clubs/".$main_data.".php
  15. <div class='card2'>
  16. <div class='month'>STYCZEŃ</div>
  17. <div class='number'>10</div>
  18. <div class='day'>PT.</div>
  19. </div></a>";
  20. }
  21.  
  22. ?>
  23.  
  24.  

Go to the top of the page
+Quote Post
LowiczakPL
post 27.01.2020, 14:41:58
Post #5





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


tu masz podpowiedź jak to wyciągnąć https://www.php.net/manual/en/function.date.php


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
Tomplus
post 27.01.2020, 15:40:59
Post #6





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----




  1. $date = new DateTime;
  2. for($i=1; $i<=10;$i++) {
  3. $date -> add(new DateInterval('P1D'));
  4. $pelnaData = $date -> format('Y-m-d');
  5. $nrTygodnia = $date -> format('W');
  6. $pelnyMiesiac = $date -> format('F');
  7. $nazwaTygodnia= $date -> format('D');
  8. }


Wynik:
Kod
Data: 2020-01-28
nrT: 05
naT: Tue
M: January


Intervał, dodaje o 1 dzień

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 20:39