Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Data] Formatowanie daty i czasu, DATETIME? Timestamp? Strefy czasowe.
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Aktualnie przechowuję datę w formacie datetime w MySQL bądź SQLite. Jest jednak problem. Data jest sztywna - przystosowana tylko dla 1 strefy czasowej.

Funkcja formatująca datę:
http://www.unit1.pl/pb-806

1. Datę można przechowywać jako timestamp. Wtedy w PHP formatujemy ją za pomocą strftime() lub date(), podając znacznik czasu jako drugi parametr.

2. Jeśli news został napisany dzisiaj, zamiast daty powinien wyświetlić się napis "Dzisiaj". W przypadku użycia timestamp raczej nie będzie to łatwe. Gdy datę przechowujemy jako datetime - odsyłam do kodu (link wyżej). (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Zależy mi przede wszystkim na wydajności odczytu i formatowania daty i czasu. Co możecie doradzić?

PS. Pamiętajcie, że czasem czas jest zbędny (ważna tylko data).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
Może ustawiam złą lokalizację w setlocale() na localhost (WinXP)?

Prawdopodobnie tak. Poeksperymentuj z czymś w rodzaju:
  1. <?php
  2. $arrLocale = array( "pl_PL", "polish_pol" );
  3. setlocale(LC_ALL, $arrLocale );
  4. ?>
- może nie działać na wszystkich serwerach.

Cytat
Czy konieczna jest zamiana daty na timestamp?
- tak czy inaczej nie unikniesz zamiany datetime na timestamp w skrypcie, a datę (obojętnie datetime czy timestamp) i tak musisz formatować. Konieczne to nie jest, specjalnie nie ma też pewnie wpływu na wydajność, ale moim zdaniem wygodne.

Musisz się na coś zdecydować - ważne, że jak zdecydujesz się na taki czy owaki format daty, to musisz tego konsekwentnie używać wszędzie. Ja bym się skłaniał ku int - dla mnie ten format daty jest prostszy i bardziej logiczny a formatowanie i "obrabianie" daty po stronie PHP przecież nie sprawia problemów z wydajnością - zresztą twórcy PHP chyba też tak sądzą, bo wyraźnie preferują timestamp.

Cytat
...z użyciem funkcji MONTH(), której brakuje w SQLite, pewnie wygrałby typ DATETIME
- nie byłbym taki pewien - integery chodzą jak burza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Poza tym baza jest często na innym serwerze no i jak dla mnie baza to baza, ma przechowywać dane, a nie je obrabiać.
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: 6.10.2025 - 04:08