Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] date()
lukasl89
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 19.07.2008

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


witam! Czy istnieje możliwość zaokrąglenia pobranego przez php czasu? Chciałbym aby np czas pobrany o godzinie 21:51 był zapisany do mysqla jako 21:50

Z góry dzięki za odpowiedzi, pozdrawiam;)
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


jak ja bym to robil to bym podzieli date na godziny i minuty i potem zrobil reszte z dzielenia przez 10 i od minut odjac ta reszte, ale pewnie znajac mozliwosci php jest jakas inna funkcja (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
krzmig
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 3
Dołączył: 24.01.2008
Skąd: Witnica

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


  1. <?php
  2. date( "G:" ).round( date( "i" ), -);
  3. ?>
Go to the top of the page
+Quote Post
styx
post
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 21.11.2005

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


istnieje taka możliwośc jeżeli naskrobiesz odrobine kodu z paroma ifami

@krzmig
  1. <?php
  2. date( "G:" ).round( date( "i" ), -);
  3. ?>

tak nie rób bo powstanie Ci godzina np. 14:60,
ale kod jest ok brakuje dwóch ifów na liczbę 60 i na godzinę 24.00
Go to the top of the page
+Quote Post
krzmig
post
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 3
Dołączył: 24.01.2008
Skąd: Witnica

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


Racja... mój błąd, może być godzina 21:60 ale 24:00 raczej się nie zdarzy ;P Wydaje mi się że teraz będzie dobrze, ale proponuję jeszcze sprawdzić ;]

  1. <?php
  2. $minuty = date( "i" );
  3. if( $minuty >= 55 )
  4. {
  5. $data = date( "G" ) + 1;
  6. if( $data == 24 )
  7. {
  8. $data = 0;
  9. }
  10. $data .= ':00';
  11. }
  12. else if( $minuty < 5 )
  13. {
  14. $data = date( "G:00" );
  15. }
  16. else
  17. {
  18. $data = date( "G:" ).round( $minuty, -);
  19. }
  20. ?>
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #6





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


mi się wydaje że podane skrypty też są złe bo są dostosowane gdzie minuty będą z 11 czyli 1, 11, 21 itp. Jak będzię np. 20 to poda że jest 19 po? 
Go to the top of the page
+Quote Post
decha-design
post
Post #7





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


a ja powiem tak ... użyj funkcji explode() do rozbicia daty podaniej jako G:i czy jak tam sobie chcesz, a póżniej użyj na odpowiednim kawałku tablicy odpowiednich funkcji ...

floor() - zaokrągla ułamki w dół
ceil() - zaokrągla ułamki w górę

Ten post edytował decha-design 27.08.2008, 23:25:22
Go to the top of the page
+Quote Post
Kicok
post
Post #8





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
a ja powiem tak ... użyj funkcji explode() do rozbicia daty podaniej jako G:i czy jak tam sobie chcesz, a póżniej użyj na odpowiednim kawałku tablicy odpowiednich funkcji ...

floor() - zaokrągla ułamki w dół


A nawet nie trzeba tego rozbijać. Można też operować na timestampie:
  1. <?php
  2.  
  3. $timestamp = floor( ( $timestamp + 300 ) / 600 ) * 600;
  4.  
  5. ?>

600 = 10 min
300 = 5 min


Ten post edytował Kicok 28.08.2008, 09:33:36
Go to the top of the page
+Quote Post

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: 23.08.2025 - 05:46