Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] ilość dni pomiedzi dwiema datami
Forum PHP.pl > Forum > Przedszkole
ayeo
Witam!
Mam takie pytanko jak elegancko obliczyć ilość dni pomiędzy dwiema datami. Wiem, że temat był wielokrotnie poruszany, ale nie jest on nadal rozwiązany w 100%. Wiem też, że można obliczć różnice w czasie unixowym i podzielić to przez 60*60*24 i wstawić wynik do funkcji floor(); Jednak moim zdaniem nie rozwiązuje to problemu w 100%. Chodzi mianowicie o zmianę czasu na letni lub zimowy. Do funkcji mktime() można przekazać jako parametr czy jest to czas letni czy zimowy.
Cytat
Argument letni/zimowy może być ustawiony na 1, jeśli to czas zimowy, lub 0 jeśli letni, lub -1 (domyślnie) jeśli niewiadomo, czy letni czy zimowy. Jeśli niewiadomo, PHP spróbuje ustalić to samodzielnie. Może to powodować nieoczekiwane (ale na pewno poprawne) wyniki.

Jednak nie rozumiem jak to działa. Jeśli data początkowa (ta od której zaczynamy liczyć) była w czasie letnim, natomiast aktualna data (ta do której liczymy)jest w zimowym to co? Chodzi mi o to, że ilość godzin (sekund) pomiędzy datami nie rozwiązuje problemu ze względu na przesunięcie godziny 2 razy w roku. Na upartego można i by sprawdzić, która data była w jakim i odpowiednio modyfikować wyniki, ale chodzi o jakiś prosty patent smile.gif Im prościej tym mniej buraków (bugów).
Pozdrawiam
ayeo
OK, niech Ci będzie smile.gif A może ktoś jeszcze wie czemu taki kod działa:
  1. <?php
  2. echo (strtotime('2007-01-30 CET')-strtotime('2007-04-11 CET'))/86400;
  3. ?>

A taki nie:

  1. <?php
  2. echo (strtotime('2007-01-30')-strtotime('2007-04-11'))/86400;
  3. ?>


W sensie bez CET (albo GTM)?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.