Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]mktime
micha12344
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 3
Dołączył: 16.01.2009
Skąd: lubelskie

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


witam
otóż mam taki skrypt ktoremu najpierw daje przyszłą datę, date aktualna sam sobie bierze , na koncu zwraca roznice ale w dziwnej skladni...jak to zamienic na normalny czas aby pokazywal dni godziny sekundy?
oto moj skrypt::

$przyszla= 1267650294;
$date= mktime("Y-m-d H:i:s");
$dobra=$przyszla-$date;
echo $dobra;
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Virus_PL
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 6.02.2010
Skąd: Toruń

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


Po pierwsze, uporządkuj składnię. Klamry nie potrzebują po wolnej linii nad sobą i pod sobą, od tego są tabulatory. Niech zgadnę, piszesz w Notepadzie?
Po drugie, mktime() nie działa w ten sposób. Od tego jest funkcja strtotime(). Składnia mktime() poniżej w moim kawałku kodu.
Po trzecie, nie ma sensu ciągle dzielić sekund, skoro mamy funkcję date(). Co prawda z zwraca dzień w roku od 0 do 365, czyli nie będzie działało gdy dni jest więcej niż 365, ale przypuszczam że aż tyle nie będzie potrzebne. W ostateczności można wtedy zrobić floor($dobra / 86400).
A oto mój kod:

  1. date_default_timezone_set('GMT');
  2. $przyszla = mktime(21, 4, 54, 3, 3, 2010); // godzina, minuta, sekunda, miesiac, dzien, rok
  3. $date = strtotime(date("Y-m-d H:i:s"));
  4. $dobra = $przyszla - $date;
  5. $dni = date('z', $dobra);
  6. $godziny = date('H', $dobra);
  7. $minuty = date('i', $dobra);
  8. $sekundy = date('s', $dobra);
  9. echo "$dni dni, $godziny godzin, $minuty minut, $sekundy sekund";
  10. if ($dobra < 0) {
  11. // przeszlosc
  12. } else {
  13. if ($dni) {
  14. // wiecej niz jeden dzien
  15. } else {
  16. if ($godziny) {
  17. // wiecej niz godzina
  18. } else {
  19. if ($minuty) {
  20. // wiecej niz minuta
  21. } else {
  22. // mniej niz minuta
  23. }
  24. }
  25. }
  26. }


Zdaję sobie sprawę, że trzykrotnie zagnieżdżony if nie jest najpiękniejszym kodem na świecie, ale działa jak trzeba.

Ten post edytował Virus_PL 6.02.2010, 10:42:29
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: 28.09.2025 - 13:09