diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index f9c72f7..342513f 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -929,6 +929,15 @@ function system_requirements($phase) {
       ];
     }
   }
+  // Check to see if dates will be limited to 1901-2038.
+  if (PHP_INT_SIZE === 4) {
+    $requirements['limited_date_range'] = [
+      'title' => t('Limited Date Range'),
+      'value' => t('Your PHP installation has a limited date range.'),
+      'description' => t('You are running on a system where PHP is compiled or limited to using 32-bit integers. This will limit the range of dates and timestamps to the years 1901-2038.'),
+      'severity' => REQUIREMENT_WARNING,
+      ];
+    }
 
   return $requirements;
 }
diff --git a/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php b/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
index 95fdd64..065568d 100644
--- a/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
+++ b/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
@@ -293,7 +293,7 @@ public function testDateTimezoneWithDateTimeObject() {
    * @see DateTimePlusTest::testDates()
    */
   public function providerTestDates() {
-    return [
+    $dates = [
       // String input.
       // Create date object from datetime string.
       ['2009-03-07 10:30', 'America/Chicago', '2009-03-07T10:30:00-06:00'],
@@ -308,6 +308,16 @@ public function providerTestDates() {
       // Same during daylight savings time.
       ['2009-06-07 10:30', 'Australia/Canberra', '2009-06-07T10:30:00+10:00'],
     ];
+
+    // On 32-bit systems, timestamps are limited to 1901-2038.
+    if (PHP_INT_SIZE !== 4) {
+      // Create a date object in the distant past.
+      $dates[] = ['1809-02-12 10:30', 'America/Chicago', '1809-02-12T10:30:00-06:00'];
+      // Create a date object in the far future.
+      $dates[] = ['2345-01-02 02:04', 'UTC', '2345-01-02T02:04:00+00:00'];
+    }
+
+    return $dates;
   }
 
   /**
@@ -320,7 +330,7 @@ public function providerTestDates() {
    * @see DateTimePlusTest::testDates()
    */
   public function providerTestDateArrays() {
-    return [
+    $dates =  [
       // Array input.
       // Create date object from date array, date only.
       [['year' => 2010, 'month' => 2, 'day' => 28], 'America/Chicago', '2010-02-28T00:00:00-06:00'],
@@ -331,6 +341,16 @@ public function providerTestDateArrays() {
       // Create date object from date array with hour.
       [['year' => 2010, 'month' => 2, 'day' => 28, 'hour' => 10], 'Europe/Berlin', '2010-02-28T10:00:00+01:00'],
     ];
+
+    // On 32-bit systems, timestamps are limited to 1901-2038.
+    if (PHP_INT_SIZE !== 4) {
+      // Create a date object in the distant past.
+       $dates[] = [['year' => 1809, 'month' => 2, 'day' => 12], 'America/Chicago', '1809-02-12T00:00:00-06:00'];
+       // Create a date object in the far future.
+       $dates[] = [['year' => 2345, 'month' => 1, 'day' => 2], 'UTC', '2345-01-02T00:00:00+00:00'];
+    }
+
+    return $dates;
   }
 
   /**
