diff --git a/core/lib/Drupal/Core/Datetime/DateFormatter.php b/core/lib/Drupal/Core/Datetime/DateFormatter.php
index d288fee..5dd277d 100644
--- a/core/lib/Drupal/Core/Datetime/DateFormatter.php
+++ b/core/lib/Drupal/Core/Datetime/DateFormatter.php
@@ -204,7 +204,6 @@ public function formatDiff($from, $to, $options = array()) {
 
     $options += array(
       'granularity' => 2,
-      'langcode' => NULL,
       'strict' => TRUE,
     );
 
@@ -212,6 +211,13 @@ public function formatDiff($from, $to, $options = array()) {
       return $this->t('0 seconds');
     }
 
+    // Do not pass irrelevant options to $this->formatPlural(). Also avoid
+    // passing a nonsensical NULL value as the language code.
+    $translation_options = [];
+    if (isset($options['langcode'])) {
+      $translation_options['langcode'] = $options['langcode'];
+    }
+
     $date_time_from = new \DateTime();
     $date_time_from->setTimestamp($from);
 
@@ -232,11 +238,11 @@ public function formatDiff($from, $to, $options = array()) {
         // strings for all different possibilities.
         switch ($value) {
           case 'y':
-            $interval_output = $this->formatPlural($interval->y, '1 year', '@count years', array(), array('langcode' => $options['langcode']));
+            $interval_output = $this->formatPlural($interval->y, '1 year', '@count years', array(), $translation_options);
             break;
 
           case 'm':
-            $interval_output = $this->formatPlural($interval->m, '1 month', '@count months', array(), array('langcode' => $options['langcode']));
+            $interval_output = $this->formatPlural($interval->m, '1 month', '@count months', array(), $translation_options);
             break;
 
           case 'd':
@@ -246,13 +252,13 @@ public function formatDiff($from, $to, $options = array()) {
             $days = $interval->d;
             $weeks = floor($days / 7);
             if ($weeks) {
-              $interval_output .= $this->formatPlural($weeks, '1 week', '@count weeks', array(), array('langcode' => $options['langcode']));
+              $interval_output .= $this->formatPlural($weeks, '1 week', '@count weeks', array(), $translation_options);
               $days -= $weeks * 7;
               $granularity--;
             }
 
             if ((!$output || $weeks > 0) && $granularity > 0 && $days > 0) {
-              $interval_output .= ($interval_output ? ' ' : '') . $this->formatPlural($days, '1 day', '@count days', array(), array('langcode' => $options['langcode']));
+              $interval_output .= ($interval_output ? ' ' : '') . $this->formatPlural($days, '1 day', '@count days', array(), $translation_options);
             }
             else {
               // If we did not output days, set the granularity to 0 so that we
@@ -262,15 +268,15 @@ public function formatDiff($from, $to, $options = array()) {
             break;
 
           case 'h':
-            $interval_output = $this->formatPlural($interval->h, '1 hour', '@count hours', array(), array('langcode' => $options['langcode']));
+            $interval_output = $this->formatPlural($interval->h, '1 hour', '@count hours', array(), $translation_options);
             break;
 
           case 'i':
-            $interval_output = $this->formatPlural($interval->i, '1 minute', '@count minutes', array(), array('langcode' => $options['langcode']));
+            $interval_output = $this->formatPlural($interval->i, '1 minute', '@count minutes', array(), $translation_options);
             break;
 
           case 's':
-            $interval_output = $this->formatPlural($interval->s, '1 second', '@count seconds', array(), array('langcode' => $options['langcode']));
+            $interval_output = $this->formatPlural($interval->s, '1 second', '@count seconds', array(), $translation_options);
             break;
 
         }
