Change record status: 
Project: 
Introduced in branch: 
8.4.x
Description: 

Problem

If you run Drupal on a system where PHP is compiled or limited to using 32-bit integers, you will only be able to enter dates between 1901 and 2038 (specifically from 20:45:52 UTC on 13 December 1901 to 03:14:07 UTC on 19 January 2038). This is commonly known as the 2038 bug.

The usual symptom is seeing a date displayed or recorded as 1970-01-01 instead of an intended value outside the above range. This will affect all PHP application, but in Drupal specifically, date-based field types are impacted, i.e. Date only and Date and Time, including the "Select list" widget. You can choose years outside the 1900 to 2038 range, but because PHP itself can't handle them, they will be stored/displayed as 1970-01-01 without warning.

Affected Products

  • Windows users with PHP 5.x/7.x 32 bit and PHP 5.x 64bit until experimental.
  • Acquia Dev Desktop 2 (as recently as Feb 1 2017 build)

Note: it's how PHP itself is compiled that counts: if you have a 32-bit version of PHP running in a 64-bit operating system you'll still experience the problem.

A new system requirement is being added to Drupal to warn users during installation.

Impacts: 
Site builders, administrators, editors
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done

Comments

liquidcms’s picture

Did it make sense to block Drupal 8 from running because of this? Do you think ALL D8 websites will still be in use in 2038?