Do zobaczenia za 100 lat… w przeszłości

Pisząc jeden z importów musiałem ustawiać datę zakończenia ustawioną daleko w przyszłości. Postanowiłem z lekka zaszaleć i ustawiłem sobie datę na sto lat w przyszłość. Troszkę się zdziwiłem widząc, że wygenerowana data to ’1970-01-01 01:00:00′. Zazwyczaj gdy takie coś widzę, to pierwsza rzecz jaką sprawdzam to czy przekazany timestamp jest prawidłowy.

Okazało się, że wszystkie parametry (dla funkcji strtotime) są prawidłowe. Jedyna rzecz, która się nie zgadza to wygenerowana data.

Teraz pytanie dla Was – czy wiecie dlaczego tak się stało? Problem jest dość banalny, a wynika z tzw. Y2K38. Inaczej mówiąc w roku 2038 następuje “przekręcenie” uniksowego timestampa przez co zamiast w przyszłości lądujemy ponownie w przeszłości.

Myślę, że ta drobnostka jest warta odnotowania :)

Ten wpis umieszczono w kategorii PHP, Programowanie i otagowano jako , , . Możesz dodać go do zakładek permalink. Dodaj komentarz lub dodaj odpowiedź (trackback): Trackback URL.

2 Komentarze

  1. Opublikowano 2 September, 2010 at 01:03 | Permalink

    Zdąrzymy przejść wszędzie na 64 bity, o ile przetrwamy koniec świata w 2012 ;)

  2. Pan Miodek
    Opublikowano 6 September, 2010 at 11:34 | Permalink

    … i nauczymy się do tego czasu ortografii :)

Skomentuj

Twój adres email nie zostanie opublikowany i nie będzie rozpowszechniany. Wymagane pola są oznaczone *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>