Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Bardzo ciekawy problem z datą.
Forum PHP.pl > Forum > Przedszkole
ark_ak
Czy ktoś wytłumaczy mi, dlaczego, np:
  1. $date = '2010-05-31';
  2. $oneDay = mktime(0,0,0,0,1,0) - mktime(0,0,0,0,0,0);
  3. echo date('Y-m-d', strtotime($date) + $oneDay);


Zwraca to, czego oczekuje, tj. 2010-06-01

ale...

  1. $date = '2010-10-31';
  2. $oneDay = mktime(0,0,0,0,1,0) - mktime(0,0,0,0,0,0);
  3. echo date('Y-m-d', strtotime($date) + $oneDay);


Już nie potrafi przeskoczyć na listopad? Licznik stoi na 2010-10-31. Co ciekawe, mam ten problem i na localhoscie (php 5.3.3), jak i na nazwa.pl (php 5.2.13). Dla 2009-10-31 dodanie jednego dnia powoduje przeskoczenie na 2009-11-01. Kompletnie nie wiem z której strony to ugryźć.
sadistic_son
Hmm, to rzeczywiście ciekawe. Tzn nie sprawdzałem u siebie ale wierzę na słowo.
A nie możesz zrobić tak?
  1. echo date('Y-m-d', strtotime($date "+ one day");
wookieb
A czy po prostu tego dnia nie ma jakieś zmiany czasu?
  1. $date = new DateTime('2010-10-31');
  2. $date->add(new DateInterval('P1D'));
  3. print_r($date);
Zyx
Masz ustawioną polską strefę czasową. 31 października 2010 jest niedziela, czyli ostatnia niedziela tego miesiąca, czyli niedziela dłuższa o godzinę.

PS. Długość doby to możesz sobie na kalkulatorze wyliczyć i na sztywno zapisać, a nie kazać mu to przeliczać za każdym razem: 86400 smile.gif.
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.