Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak obliczyć datę - dwa tygodnie do tyłu od, np. 22.2.2006?
miedzna
post 2.01.2006, 14:16:55
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Jak w temacie, mamy na przykład datę 22.2.2006 i jak wyliczyć datę 2 tygodnie do tyłu od tej daty i żeby była w postaci 8.2.2006 ?

Dzięki i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
nospor
post 2.01.2006, 14:19:18
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




do dodawania lub odejmowania sluzy strtotime.
Do formatowania: date
reszta nalezy doCiebie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miedzna
post 2.01.2006, 14:28:53
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


A jak ten czas UNIXowy 1815688800 zamienić teraz na datę w formacie d-m-rrrr?

Ten post edytował miedzna 2.01.2006, 14:29:12
Go to the top of the page
+Quote Post
nospor
post 2.01.2006, 14:32:37
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Czy ja niewyraźnie piszę?
Cytat
Do formatowania: date


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kshyhoo
post 2.01.2006, 14:55:53
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To chyba jakoś tak:
  1. <?php
  2. // aktualna data
  3. $data = date("Y-n-j");
  4.  
  5. echo "$data<br>";
  6.  
  7. // zamiana daty na znacznik czasu
  8. $d1 = strtotime($data);
  9.  
  10. // 20 dni jako znacznik czasu (60*60*24*20)
  11. $d2 = 1728000;
  12.  
  13. $d = $d1 - $d2;
  14.  
  15. // format nowej daty
  16. $nowa_data = date("Y-n-j", $d);
  17. $nowa_data_odw = date("j-n-Y", $d);
  18.  
  19. echo "$nowa_data<br>";
  20. echo "$nowa_data_odw";
  21.  
  22. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post 2.01.2006, 15:15:21
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@ksyhoo:
nie poto podalem linki do manuala bys teraz do wawy przez chiny szedl.
ten kod
  1. <?php
  2.  
  3. // zamiana daty na znacznik czasu
  4. $d1 = strtotime($data);
  5.  
  6. // 20 dni jako znacznik czasu (60*60*24*20)
  7. $d2 = 1728000;
  8.  
  9. $d = $d1 - $d2;
  10. ?>

zastepuje sie:
  1. <?php
  2.  
  3. $d = strtotime('-20 day',strtotime($data));
  4.  
  5. ?>

czytac, czytac i jeszcze raz czytac manuala. zycie bedzie prostrze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miedzna
post 2.01.2006, 15:27:56
Post #7





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


@nospor: nie denerwuj się, spokojnie smile.gif

jeżeli mogę, to jeszcze jedno pytanko, dlaczego jak w tym kodzie:
  1. <?php
  2. $data = date("Y-n-j");
  3. echo date("j-n-Y", strtotime('-14 day',strtotime($data)));
  4. ?>


format daty w zmiennej $data zamienię z Y-n-j na d-m-Y (bo w takim formacie jest wyciągana data z bazy) to już źle liczy 14 dni do tyłu?

Ten post edytował miedzna 2.01.2006, 15:35:12
Go to the top of the page
+Quote Post
nospor
post 2.01.2006, 15:34:55
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
@nospor: nie denerwuj się, spokojnie
Ja jestem czlowiek nadwyraz spokojny i sie nie denerwuje. Ale jak trzeba to nakrzycze. Dzieki temu moze na ludzi wyjdziecie smile.gif

Cytat
format daty zamienię na d-m-Y to już źle liczy 14 dni do tyłu?
Glupoty gadasz smile.gif. Dziala dobrze. Dopiero co testowalem. Tylko wiesz, ze to co podales cofa cie o dwa tygodnie od dzisiaj


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miedzna
post 2.01.2006, 15:38:56
Post #9





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Cytat(nospor @ 2006-01-02 16:34:55)
Glupoty gadasz smile.gif. Dziala dobrze. Dopiero co testowalem. Tylko wiesz, ze to co podales cofa cie o dwa tygodnie od dzisiaj.

A właśnie że nie, spróbuj ten kod, w zmiennej $data zmieniłem format na d-m-Y i pokazuje mi 15-06-2007 smile.gif

  1. <?php
  2. $data = date("d-m-Y");
  3. echo date("d-m-Y", strtotime('-14 day',strtotime($data)));
  4. ?>
Go to the top of the page
+Quote Post
nospor
post 2.01.2006, 15:43:05
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Hej cwaniaczku, ty kod zmieniles. ja testowalem ten pierwszy co pokazales tongue.gif
Tutaj nic dziwnego ze ci nie dziala, gdyz strtotime przyjmuje date w formacie Y-m-d


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miedzna
post 2.01.2006, 15:47:10
Post #11





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


No i tu mam problem, gdyż w bazie mam daty w formacie d-m-Y sad.gif co robić? Zmieniać tego nie będę bo jest tego dużo a muszę obliczyć dla każdej daty w bazie które są zapisane w formacie d-m-Y datę dwa tygodnie wstecz.
Go to the top of the page
+Quote Post
tiraeth
post 2.01.2006, 16:01:57
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  1. <?php
  2. $data = date('d-m-Y');
  3. list($d, $m, $y) = explode('-', $data);
  4. $data = $y . '-' . $m . '-' . $d;
  5.  
  6. echo date("d-m-Y", strtotime('-14 day',strtotime($data)));
  7. ?>


Ciężko użyć explode?
Go to the top of the page
+Quote Post
ennics
post 2.01.2006, 16:02:54
Post #13





Grupa: Zarejestrowani
Postów: 312
Pomógł: 0
Dołączył: 29.12.2004

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


Kod
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d')


--------------------
Go to the top of the page
+Quote Post
mk768
post 16.01.2006, 11:17:28
Post #14





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.07.2005

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


proponuje
$data_tyl = date("d-m-Y", mktime('0','0','0', date(d)-20, date(m),date(Y)));
wyciagnac date z bazy i porownac
proste i dziala bez pudla
Go to the top of the page
+Quote Post
Zajec
post 16.01.2006, 14:33:23
Post #15





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Kolejna, tym razem moja propozycja ;-)

Przekonwertować zapisane daty w bazie za pomocą jednego skryptu i gotowe. Ale tym razem uzyc oczywiście pola "date".
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: 14.08.2025 - 07:38