Ograničenja 32-bitnog PHP-a
Ako pokrenete Drupal na sistemu gde je PHP kompajliran ili ograničen na korišćenje 32-bitnih celih brojeva, moći ćete da unosite datume samo između 1901. i 2038. godine (tačnije, od 20:45:52 UTC 13. decembra 1901. do 03:14:07 UTC 19. januara 2038.). Ovo je široko poznato kao problem godine 2038.
Uobičajeni simptom je da se datum prikazuje ili snima kao 1970-01-01 umesto očekivane vrednosti izvan gore navedenog opsega. Ovo će uticati na sve PHP aplikacije. Konkretno, u Drupalu ovo utiče na tipove polja zasnovane na datumu, tj. samo datum i datum i vreme, uključujući i „Lista izbora“ vidžet. Možete izabrati godine van opsega od 1900. do 2038., ali pošto ih PHP ne može obraditi, one će biti sačuvane/prikazane kao 1970-01-01 bez upozorenja.
Proizvodi pod uticajem
- Zvanične Windows verzije PHP 5.x / 7.x za x86 i PHP 5.x za x64.
- Bilo koji web-stack paket (XAMPP, Wamp i dr.) sa PHP-om kompajliranim za 32-bitnu verziju i/ili koji radi na 32-bitnom sistemu.
- Acquia Dev Desktop 2 do izdanja od 14. juna 2018. (sada koristi 64-bitni PHP i MySQL).
Napomena: važno je kako je sam PHP kompajliran: ako imate 32-bitnu verziju PHP-a koja radi na 64-bitnom operativnom sistemu, i dalje ćete imati ovaj problem.
Testiranje
Da biste proverili da li je vaš PHP pod uticajem, možete pokrenuti ovu komandu (u jednoj liniji):
php -r "echo (date('y',strtotime('2039-01-01')) == 39 ? 'OK' : 'Y2K38 limitation') . PHP_EOL;"
PHP koji nije pod uticajem će odštampati OK, dok PHP koji ima ovaj problem odštampaće ograničenje Y2K38.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.