Limitaciones de PHP de 32 bits
Si ejecuta Drupal en un sistema donde PHP est谩 compilado o limitado al uso de enteros de 32 bits, solo podr谩 ingresar fechas entre 1901 y 2038 (espec铆ficamente, desde las 20:45:52 UTC del 13 de diciembre de 1901 hasta las 03:14:07 UTC del 19 de enero de 2038). Esto es ampliamente conocido como el error del a帽o 2038.
Un s铆ntoma com煤n es que la fecha se muestra o se guarda como 1970-01-01 en lugar del valor esperado fuera del rango mencionado. Esto afectar谩 a todas las aplicaciones PHP. En particular, en Drupal afecta a los tipos de campos basados en fecha, es decir, solo fecha y fecha y hora, incluyendo el widget de 芦Lista desplegable禄. Puede seleccionar a帽os fuera del rango de 1900 a 2038, pero dado que PHP no puede procesarlos, se guardar谩n/mostrar谩n como 1970-01-01 sin advertencia.
Productos afectados
- Compilaciones oficiales de Windows para PHP 5.x / 7.x para x86 y PHP 5.x para x64.
- Cualquier paquete de pila web (XAMPP, Wamp, etc.) con PHP compilado para versi贸n de 32 bits y/o ejecut谩ndose en sistema de 32 bits.
- Acquia Dev Desktop 2 hasta la versi贸n lanzada el 14 de junio de 2018 (ahora usa PHP y MySQL de 64 bits).
Nota: lo que importa es c贸mo est谩 compilado PHP en s铆: si tiene una versi贸n de PHP de 32 bits funcionando en un sistema operativo de 64 bits, a煤n enfrentar谩 este problema.
Prueba
Para verificar si su PHP est谩 afectado, puede ejecutar este comando (en una sola l铆nea):
php -r "echo (date('y',strtotime('2039-01-01')) == 39 ? 'OK' : 'Limitaci贸n Y2K38') . PHP_EOL;"
Una instancia no afectada de PHP imprimir谩 OK, y una instancia vulnerable imprimir谩 la limitaci贸n Y2K38.