Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z formatowaniem daty
lucca
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 2
Dołączył: 7.03.2008

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


Witam!

Mam skrypt w którym można dodawać daty. Ale niektóre daty są niekompletne, to znaczy nieznany jest np. miesiąc (2005-03-00)

Do bazy zapisuje to wszystko ładnie, istnieje prawidłowy wpis. Problem pojawia się przy wyciąganiu daty z bazy:


  1. <?php
  2. '.date(''.$r['date_format'].'',strtotime($r[date])).'
  3. ?>


$r['date_format'] jest to format daty, indywidualnie ustawiany. Problem w tym, że kiedy trafi się na taką datę jak w przykładzie, to zwrócone zostaje:
  1. <?php
  2. 1975.08.31
  3. ?>

mimo, że powinno być zwrócone
  1. <?php
  2. 1975.09.00
  3. ?>


Ma ktoś jakiś pomysł jak to obejść?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lucca
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 2
Dołączył: 7.03.2008

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


Cytat(sniezny_wilk @ 30.05.2008, 14:13:02 ) *
Mike już napisał. Filtrować dane i sprawdzać, czy użytkownik wpisał niepoprawną datę, jeśli jest zła wyrzucić komunikat z prośbą o poprawienie. Pierwszy lepszy sposób: [manual\]checkdate\[/manual\]


No to wiem, ale co zrobić w momencie kiedy tej daty po prostu dokładnej nie zna?
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(lucca @ 30.05.2008, 14:15:04 ) *
No to wiem, ale co zrobić w momencie kiedy tej daty po prostu dokładnej nie zna?
Zapisuj w formacie timestamp zaokrąglając do danych, które znasz.
  1. <?php
  2. echo mktime(12, 30, 15, 5, 30, 2008); // 2008-05-30 12:30:15
  3. echo mktime(12, 30, 0, 5, 30, 2008); // bez sekund
  4. echo mktime(12, 0, 0, 5, 30, 2008); // bez sekund i minut
  5. echo mktime(0, 0, 0, 5, 30, 2008); // bez sekund, minut i godziny
  6. echo mktime(0, 0, 0, 5, 0, 2008); // bez sekund, minut, godziny i dnia
  7. echo mktime(0, 0, 0, 0, 0, 2008); // bez sekund, minut, godziny, dnia i miesiąca. czyli sam rok 2008
  8. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.12.2025 - 22:01